主页 > imtoken最新app下载 > 为什么很多公司转而使用Go语言开发? Go语言能做什么?

为什么很多公司转而使用Go语言开发? Go语言能做什么?

imtoken最新app下载 2023-02-20 07:48:04

一、为什么选择Go语言

选择 Go 语言的原因可能有很多。 我们在之前的文档中已经介绍了很多Go语言的特点和优势。 但主要原因应该是基于以下两点考虑:

表现

缩短API响应时间,解决批量请求访问超时问题。 在Uwork的业务场景中,一个API批量请求往往会涉及到对其他接口服务的多次调用,但在以往的PHP实现方式下,并行调用难度很大,串行处理也无法从根本上提升处理性能。 GO语言是不同的。 通过协程可以轻松实现API的并行处理,最大限度地提高处理效率。 依托Golang的高性能HTTP Server,将系统吞吐量从PHP的数百级提升至数千里甚至数万级。

开发效率

GO语言简单易用,代码描述效率高,编码标准统一,上手快。 以少量的代码,实现框架的标准化,快速构建统一规范的API业务逻辑。 可以快速构建各种通用组件和公共类库,进一步提升开发效率,实现特定场景下的功能量产。

2、Go语言能做什么?

Go语言自1.0版本发布以来,就受到了众多开发者的关注,并得到了广泛的应用。 Go语言简单、高效、并发的特点吸引了很多传统语言的开发者加入,而且人数还在不断增加。

鉴于Go语言的特点和设计初衷,作为一种服务器编程语言,Go语言非常适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等。 .; 在网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等; 此外,Go语言还适用于内存数据库和云平台。 目前国外很多云平台都是使用Go开发的。

对于服务端编程,如果以前用C或者C++来做那些东西,用Go来做是很合适的,比如处理日志,数据打包,虚拟机处理,文件系统等等。

分布式系统、数据库代理、中间件等,比如Etcd。

网络编程是目前应用最广泛的,包括Web应用、API应用、下载应用,而Go中内置的net/http包基本实现了我们平时使用的所有网络功能。

数据库操作

开发云平台。 目前国外很多云平台都是用Go开发的

三、国内外有哪些企业或项目使用了Go语言

Go 发布后,许多公司,尤其是云计算公司,开始使用 Go 来重构他们的基础设施。 其中许多是直接使用 Go 开发的。 最近如火如荼的Docker就是用Go开发的。

以太坊代码行数_以太坊股票代码是什么_以太坊经典代码

有许多使用 Go 语言开发的开源项目。 早期的Go语言开源项目只是通过Go语言将C语言库与传统项目绑定实现,如Qt、Sqlite等; 后来的很多项目都是用Go语言重新原生实现的。 这个过程比其他语言简单。 这也促成了大量使用Go语言的原生开发项目的出现。

云计算基础设施领域代表项目:docker、kubernetes、etcd、consul、cloudflare CDN、七牛云存储等。

基础软件代表项目:tidb、influxdb、cockroachdb等。

微服务代表项目:go-kit、micro、monzo bank的typhon、bilibili等。

代表互联网基础设施项目:Ethereum、Hyperledger等。国外一些使用Go的公司,如Google、Docker、Apple、Cloud Foundry、CloudFlare、Couchbase、CoreOS、Dropbox、MongoDB、AWS等公司; 国内使用Go开发的公司:如阿里云CDN、百度、小米、七牛、PingCAP、华为、金山、猎豹移动、饿了么等公司。

DockerDocker是一种操作系统级虚拟化技术,可以隔离操作系统和应用程序,也称为容器。 Docker 可以在一台物理服务器上快速运行一个或多个实例。 一个基于lxc的虚拟打包工具,可以实现PaaS平台的组建。 例如,启动一个CentOS操作系统,执行完其内部命令行指令后结束,整个过程就像在操作系统中一样高效。

项目链接:

Go语言早期的源代码Go语言是用C语言和汇编语言编写的。 从 Go 1.5 版本开始,它完全是用 Go 语言本身编写的。 Go语言的源码对于理解Go语言的底层调度有很大的参考意义。 推荐想要深入了解Go语言的读者阅读。

项目链接:

Kubernetes 是由谷歌开发的建立在 Docker 之上的容器调度服务。 用户可以通过 Kubernetes 集群管理云容器集群。

项目链接:

etcd是一个分布式、可靠的KV存储系统,可以在云端快速配置。

项目链接:

beegobeego 是一个类似于 Python 的 Tornado 框架。 它采用RESTFul的设计思想,是一个用Go语言编写的极轻量级、高扩展性、高性能的Web应用框架。

项目链接:

martini 是一个用于快速构建模块化 Web 应用程序的 Web 框架。 项目链接:

Codis是一款优秀的国产Redis分布式解决方案。 项目链接:

FacebookFacebook 也在使用它。 为此,他们还在Github上建立了一个开源组织facebookgo。 可以访问 Facebook 开源项目,比如著名的平滑升级 grace。

腾讯作为国内大公司,腾讯还是敢于尝试的,尤其是在Docker容器化领域。 他们做了15年docker scale 10000台的实践,具体可以参考。

百度目前知道的百度的使用是在运维端。 是百度运维的一个BFE项目,负责前端流量的接入。 他们的负责人在2016年分享过,你可以看看这个。

二是百度的消息系统。 负责公司手机短信系统服务器端的开发和维护。

京东动云的消息推送系统、云存储、京东商城都使用Go进行开发。

小米小米对Golang的支持,无非就是把运维监控系统开源了,也就是。 此外,小米互娱、小米商城、小米视频、小米生态等团队都在使用Golang。

360360 也经常使用 Golang。 一个是开源的日志搜索系统Poseidon,托管在Github上,360的推送团队也在使用。 他们还在 Golang 的官方博客上写了一篇博文。

七牛云七牛云用了近50万行代码实现了整个产品。 七牛云存储产品网址:. 上线时间:2011-9-1.应用范围:整个产品(包括基础服务、Web终端、统计平台、各种小工具等) Go代码行数占比:99.9% 每日PV:保密

Meituan美团后台流量扶持程序。 适用范围:支持主站后台流量(排序、推荐、搜索等),提供负载均衡、缓存、容错、按条件拆分流量、统计运行指标(qps、latency)等功能.

滴滴基础服务平台。

金山微看应用范围:服务接口、后台进程服务、消息系统、图片系统

weico server的所有代码都是用Go实现的。

仙侠道应用范围:游戏服务器(通信、逻辑、数据存储)

快玩游戏应用范围:实时消息系统、用户鉴权、用户会话、统一统计接口

盛大云CDNCDN的调度系统、分发系统、监控系统、短域名服务、CDN内部开放平台、运营报表系统等小工具等。

Bmob移动后台云服务平台应用范围:Restful API(使用Beego),统计分析平台,常用服务如发送邮件,队列异步处理,统计用户空间和接口请求

分组规划,统一团队沟通,高效完成工作 适用范围:全系统

BiddingX DSP广告投放系统应用范围:竞价投放、曝光统计、点击跳转

斗家建设最美的家,斗家与您共建

首个以实验室实验为中心的IT在线教育平台

新浪微博中间件和灵活调度是用Java和Go写的,微博视频转码和存储服务是用Go写的。

爱奇艺VR后台系统中间件,VR端HTTP接口。

网易网易Hive容器公有云。

哔哩哔哩弹幕

巨人网络部分手游服务器端。

今日头条Nsq:Nsq是一款采用Go语言开发的高性能、高可用的消息队列系统。 AWS等,作者是vagrant的作者 Skynet:分布式调度框架 Doozer:分布式同步工具,类似ZooKeeperHeka:mazila开源日志处理系统 Cbfs:couchbase开源分布式文件系统 Tsuru:开源PAAS平台,SAE实现 功能完全一样 Groupcache:memcahe作者为谷歌下载系统编写的缓存系统 God:类redis的缓存系统,但支持分布式和可扩展 Gor:网络流量抓取和重放工具

还有很多,比如阿里中间件、聚美优品、高升控股、探探、斗鱼直播、人人车、亚信、Udesk、房付通、招财猫、三一集团、美餐等。一般的选择就是选择适合自己的产品体系你的公司以太坊代码行数,比如消息推送,监控,容器等。Golang特别适合做网络并发服务。 这是它的强项,所以也是首选。 在这些项目上。 Go语言作为一种大型项目开发语言,已经在很多大公司使用,甚至完全转向了Go开发。

4.写在最后

当然,一项技术能否发展起来,取决于三个关键点。

有没有更好的社区。 C、C++、Java、Python 和 JavaScript 等生态系统非常丰富和充满活力。 尤其是有很多商业组织参与的社区更受欢迎,比如Linux社区。

有没有行业标准。 和C、C++、Java一样,也有标准化组织。 尤其是Java,它在架构上也创造了像J2EE一样的企业级标准。

是否有一个或多个杀手级应用程序。 C、C++、Java的杀手级应用不用多说,即使对于PHP这种也算不上好的编程语言,因为它是Linux时代第一个杀手级解决方案LAMP中的关键技术,所以,也发展起来了。

以上三点非常关键。 新技术只需要占据其中一两个,就已经很不错了。 更有什者,一些技术,比如Java,占据了这三点。 所以,Java的发展还是这样的好。 当然,除了以上三点之外,还有一些其他的影响因素,比如:

学习曲线是否低,上手是否快。 这一点很重要,C++在这一点上越来越差了。 有没有好的开发框架来提高开发效率。 如:Java的Spring框架,C++的STL等。是否有一家或多家科技巨头做后盾。 比如:Java、Linux背后的IBM、Sun……他们解决了软件开发的痛点了吗? 例如:Java解决了C和C++的内存管理问题。

用这些标准来衡量 Go 语言,我们可以清楚地看到:

因此,Go语言的未来不可限量。 当然,我个人认为Go可能会吞掉很多C、C++、Java的项目。 不过被Go语言吞噬的主要项目应该是中层项目,既不是很底层也不是业务层。

也就是说,Go语言不会将底层吞噬到C、C++这一层,也不会吞噬Java业务层等高层项目。 Go语言能吞的肯定是PaaS上的项目,比如一些消息缓存中间件、服务发现、服务代理、控制系统、Agent、日志采集等,没有复杂的业务场景,也达不到特殊的底层(如操作系统)中间平台层的软件项或工具。 C、C++会往下推,Java会往上推业务层。

好吧,让我们用上面的尺度来衡量一下Go语言的杀手级应用Docker,你会发现基本是一样的。

所以,虽然几年前的Docker当时有很多坑,但是和这些大的因素相比,那些小坑都不是问题。 只是需要一些时间,这些小洞可以在未来5-10年内完全填补。

以太坊代码行数_以太坊经典代码_以太坊股票代码是什么

同样,我们可以看到Kubernetes作为服务和容器调度的关键技术,一定会是最后的赢家。

最后我还要说说为什么我们要早点进入这些新技术,而不是等这些技术成熟了再进入。 有几个原因。

技术开发过程非常重要。 因为你可以清楚地看到这项新技术的生态系统发展过程。 让我们收获最多的不是这些技术本身,而是技术的变革和行业的发展。

从中,我们看到了各种非常具体的思想和想法,比技术本身更有价值。 因为这不仅让我们重新思考自己掌握的技术以太坊代码行数,如何更好地解决现有的问题,也让我看到了未来。 不仅拥有技术优势,而且这种知识也让我们的技术生涯有了更多的可能性。

这些关键的新技术可以让你在技术上占得先机。 这些对于需要技术领导力的个人或公司来说非常重要。

一个能够在技术上处于领先地位的公司或个人,其影响力将比其他公司或个人更大。 未来的行业需求一旦被引爆,企业或个人的影响力就会形成比较大的护城河,能够快速产生经济效益。

Go的应用范围一直在扩大,云计算、微服务、区块链,还有用Go写的重量级项目。 docker/kubernetes 生态,上亿行代码,基本统治了云原生应用市场。 去年流行的区块链,以太坊的geth,比特币的btcd,闪电网络的lnd,都是用Go语言开发的。 还是那句话,多看看各种语言的生态,也许它们并没有你想象的那么糟糕。 . . Go语言的设计确实不够“先进”,但也是另一种“务实”。 事实上,围棋在国内外已经非常流行。 在国外,谷歌用得很多,Uber也在用。 在中国,有一个著名的今日头条,每天有几千亿的访问量。 有多少语言一生都没有这么大的应用场景。

最后推荐一个极客时间课程,对建筑感兴趣的同学可以学习一下。

以太坊经典代码_以太坊股票代码是什么_以太坊代码行数

分享一本面试书《Java核心知识点集锦.pdf》,内容涵盖JVM、锁、高并发、反射、Spring原理、微服务、Zookeeper、数据库、数据结构等。