你现在用的产品背后、也是全世界成长最快的移动互联网企业字节跳动,这家公司后端服务超过80%的的流量都运行在Go构建的服务之上的,微服务数量就超过了100个,峰值QPS超过700万万,每天请求量超过了3000亿,这么一说你觉得Go语言重要吗?
Go语言第一次扛住了春晚流量洪峰,支撑了全世界成长最快的移动互联网企业
大家也都知道,这几年互联网公司红包活动作为春晚保留节目,也是这几年春晚最大的广告单子,不过在技术上一直都是互联网公司的挑战,能够中标、并且敢接这个任务的互联网企业都是国内技术实力最强互联网企业,不管是技术还是运营能力都是行业之最。
连续三年的时间,第一年微信春晚红包一夜之间走完了支付宝八年才走完的路,第二年阿里巴巴携淘宝、支付宝红包卷土重来试图要捍卫大厂地位,尽管两家企业都顺利的完成了任务,但都不算是完美的完成了任务,因为都没能扛住第二波峰值。第三年百度登场,可是百度没有微信的10亿用户,也没有天猫双十一的竞技场,有的只是一个“中国技术最强互联网公司”的“名头”,不过百度还是证明了自己的强大,顺利的扛过了第二波流量洪峰,百度BFE全都是用Go语言作为核心技术栈,承担了几乎百度所有的转发请求,峰值QPS都在千万以上。
最后要说的就是字节跳动了,字节跳动的后端开发基本上都是Go语言,今日头条和抖音都是主要构建在Go语言之上的。
为什么大家都喜欢用Go语言?
举个例子吧,C/C++功能强大吧,尤其是C++是我认为这个星球上最牛X的编程语言(当然我内心深处还是更欣赏Lisp),可是C++这玩意儿一般人搞不定啊,这玩意儿强大是强大了,程序员水平确实参差不齐,自然写出来的代码质量会差很多。
PHP、Python、Go语言就不一样了,尽管不同水平写出来依然有差异,可是差异不会那么大呀,是个程序员写出来都还是能看的,关键还没有那么难。Go语言学习门槛比Python和PHP不会高啊,而且性能比这俩货还要好很多,你说这时候你选啥?至于Java(作为一个曾经主要使用Java的码农,表示这门语言真是一言难尽,一个需要用很多篇幅来写规范的编程语言,我是不会用它开始一个新项目的),这时候Go语言就很香了。
一堆优秀的互联网公司都在用Go
前面说到的手机百度的消息系统,以及百度运维的BFE项目,以及字节跳动旗下的今日头条、抖音(头条是从Python逐渐转到Go语言的)也都是Go语言。
Google作为Go语言的缔造者,自然也会用Go语言做一些项目,大名鼎鼎的kubernetes项目就是用Go语言开发的,中国联通、以及Spotify都在使用kubernetes技术。Facebook也在用Go语言,同样大名鼎鼎的Grace也是Go语言开发的。
大名鼎鼎的容器Docker核心技术栈就是Go语言,相应的腾讯公司的蓝鲸平台、容器开发也都是Go语言,腾讯在2015年的时候就已经部署了上万台规模的Docker服务器,尽管腾讯的核心技术栈是C/C++,很多老代码很难轻易改动,腾讯依然会在新业务上不断地尝试使用Go语言。
二次元弹幕网站bilibili,都是采用的Go语言作为核心技术栈。除此之外电商网站里面京东的消息推送、云存储,小米公司的小米商城、小米视频,七牛云也在使用Go语言,七牛云的创始人许式伟还是中国最早的Go语言布道者之一。
顺便要提一下的是,国内的操作系统团队,深度Linux的守护进程、同步服务、以及接口等都是用Go语言开发的,这一点必须要点个赞。
Go语言使用简单、上手极快,代码效率极高、可以说基本仅次于C/C++,编码规范统一程度好,对高并发的支持也比较好、适合用来做对并发要求比较高的业务,也非常适合用来做消息业务。