溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

go語(yǔ)言能不能做后端

發(fā)布時(shí)間:2022-12-27 11:02:59 來(lái)源:億速云 閱讀:105 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“go語(yǔ)言能不能做后端”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“go語(yǔ)言能不能做后端”吧!

go語(yǔ)言能做后端。go語(yǔ)言是服務(wù)端的編程語(yǔ)言,其方向主要是后端,很適合處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)、分布式系統(tǒng)、數(shù)據(jù)庫(kù)代理等。使用Go語(yǔ)言做后端開(kāi)發(fā)的原因:1、在語(yǔ)言層面具有語(yǔ)法簡(jiǎn)潔、執(zhí)行效率高的特點(diǎn);2、主打并發(fā)、為并發(fā)而生的,其出發(fā)點(diǎn)即是瞄準(zhǔn)大數(shù)據(jù)+云計(jì)算時(shí)代背景下的高并發(fā)、分布式應(yīng)用場(chǎng)景;3、可以在不同平臺(tái)直接編譯生成可執(zhí)行程序,基礎(chǔ)內(nèi)存占用很少。

go語(yǔ)言是服務(wù)端的編程語(yǔ)言,主要用于后端,很適合處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)、分布式系統(tǒng)、數(shù)據(jù)庫(kù)代理等。

為什么使用Go語(yǔ)言做后端開(kāi)發(fā)?

1、簡(jiǎn)單高效:幾乎所有主流的編程語(yǔ)言如Java、C++、PHP、Python、JavaScript等等都是可以用于服務(wù)端開(kāi)發(fā)的,Go語(yǔ)言作為后起之秀,在語(yǔ)言層面具有語(yǔ)法簡(jiǎn)潔、執(zhí)行效率高(底層語(yǔ)言)的特點(diǎn);相比之下,Java和Python、PHP都顯得低效,C++則太過(guò)麻煩,而Go則可以做到簡(jiǎn)單與高效兼顧;

2、高并發(fā):Go語(yǔ)言是主打并發(fā)、為并發(fā)而生的,其出發(fā)點(diǎn)即是瞄準(zhǔn)大數(shù)據(jù)+云計(jì)算時(shí)代背景下的高并發(fā)、分布式應(yīng)用場(chǎng)景;

3、跨平臺(tái):可以在不同平臺(tái)直接編譯生成可執(zhí)行程序,基礎(chǔ)內(nèi)存占用很少,小應(yīng)用占用幾M大型應(yīng)用占用個(gè)幾十M就能很好運(yùn)行,這使得golang可以在樹(shù)莓派之類(lèi)的小設(shè)備上很好的運(yùn)行,這一點(diǎn)表現(xiàn)比java要好的多;

容器化、分布式、微服務(wù)化是服務(wù)端發(fā)展的潮流,在這幾個(gè)方向上:

  • 容器化:容器領(lǐng)域Go語(yǔ)言是絕對(duì)的霸主,大家所熟知的 Docker 和Kubernets(K8S)就是使用Go語(yǔ)言開(kāi)發(fā)的;

  • 分布式:最好的例證就是以太坊,因?yàn)?區(qū)塊鏈 即分布式賬本;

  • 微服務(wù) :Go語(yǔ)言支持微服務(wù)的最好例證是 今日頭條 ,今日頭條當(dāng)前后端服務(wù)超過(guò)80%的流量是跑在 Go 構(gòu)建的服務(wù)上。微服務(wù)數(shù)量超過(guò)100個(gè),高峰 QPS 超過(guò)700萬(wàn),日處理請(qǐng)求量超過(guò)3000億,可能是業(yè)內(nèi)最大規(guī)模的Go應(yīng)用。

Go語(yǔ)言作為后端語(yǔ)言,跟其他后端語(yǔ)言相比,Go有什么優(yōu)勢(shì)或者特點(diǎn)呢?

  • 語(yǔ)言層面支持并發(fā),這個(gè)就是Go最大的特色,很容易編寫(xiě)多線程程序,可以充分的利用多核。

  • 作為出生在21世紀(jì)的編程語(yǔ)言,支持垃圾回收,跟Java一樣不需要開(kāi)發(fā)人員管理內(nèi)存,可以專(zhuān)注于業(yè)務(wù)實(shí)現(xiàn)。

  • 豐富的標(biāo)準(zhǔn)庫(kù),Go內(nèi)置了大量的庫(kù),特別是網(wǎng)絡(luò)庫(kù)非常強(qiáng)大。

  • Go 語(yǔ)言的部署比較簡(jiǎn)單,直接編成機(jī)器碼,而且還有跨平臺(tái)的編譯的選項(xiàng)。

  • Go語(yǔ)言的理念是“少即是極多”,相對(duì)于C++,Java來(lái)說(shuō),Go語(yǔ)言更容易上手。

Go語(yǔ)言成功案例

1、Docker(容器)

到現(xiàn)在,Docker幾乎是Go再難找到也難以復(fù)制的一個(gè)成功案例。Docker項(xiàng)目在2014年9月份就拿到了C輪4000萬(wàn)美元融資,版本迭代速度超快,目前從GitHub看到已有78個(gè)版本,而它僅僅是再2013年初才正式開(kāi)始的一個(gè)項(xiàng)目而已。目前,國(guó)內(nèi)Docker技術(shù)推廣也進(jìn)行的如火如荼,比如 Docker中文社區(qū),CSDN也建立了 Docker專(zhuān)區(qū)。 Docker團(tuán)隊(duì)之所以喜歡用Go語(yǔ)言,主要是Go具有強(qiáng)大的標(biāo)準(zhǔn)庫(kù)、全開(kāi)發(fā)環(huán)境、跨平臺(tái)構(gòu)建的能力。

2、Kubernetes(容器)

Kubernetes是2014年夏天Google推出的Kubernetes,基于Docker,其目的是讓用戶通過(guò)Kubernetes集群來(lái)進(jìn)行云端容器集群的管理,而無(wú)需用戶進(jìn)行復(fù)雜的設(shè)置工作。系統(tǒng)會(huì)自動(dòng)選取合適的工作節(jié)點(diǎn)來(lái)執(zhí)行具體的容器集群調(diào)度處理工作。其核心概念是Container Pod(容器倉(cāng))。

3、Etcd & Fleet(分布式數(shù)據(jù)庫(kù))

etcd是由CoreOS開(kāi)發(fā)并維護(hù)鍵值存儲(chǔ)系統(tǒng),它使用Go語(yǔ)言編寫(xiě),并通過(guò)Raft一致性算法處理日志復(fù)制以保證強(qiáng)一致性。目前,Google的容器集群管理系統(tǒng)Kubernetes、開(kāi)源PaaS平臺(tái)Cloud Foundry和CoreOS的Fleet都廣泛使用了etcd。 Fleet則是一個(gè)分布式的初始化系統(tǒng)。它們之所以選擇使用Go語(yǔ)言,則是因?yàn)镚o語(yǔ)言對(duì)跨平臺(tái)的良好支持,以及其背后的強(qiáng)大社區(qū)。

4、Deis(云服務(wù)平臺(tái))

Deis是一個(gè)基于Docker和CoreOS的開(kāi)源PaaS平臺(tái),旨在讓部屬和管理服務(wù)器上的應(yīng)用變得輕松容易。它可以運(yùn)行在AWS、GCE以及Openstack平臺(tái)下。

5、Flynn(云服務(wù)平臺(tái))

Flynn是一個(gè)使用Go語(yǔ)言編寫(xiě)的開(kāi)源PaaS平臺(tái),可自動(dòng)構(gòu)建部署任何應(yīng)用到Docker容器集群上運(yùn)行。Flynn項(xiàng)目受到Y(jié) Combinator的支持,目前仍在開(kāi)發(fā)中,被稱(chēng)為是下一代的開(kāi)源PaaS平臺(tái)。

6、Lime(桌面應(yīng)用)

相對(duì)上面的幾款Go語(yǔ)言在云端和服務(wù)器端之外,Lime則顯得比較特殊。Lime則是一款用Go語(yǔ)言寫(xiě)的桌面編輯器程序,被看做是著名編輯器Sublime Text的開(kāi)源實(shí)現(xiàn)。

7、Revel(Web框架)

Revel是一個(gè)高生產(chǎn)力的Go語(yǔ)言Web框架。Revel框架支持熱編譯,當(dāng)編輯、保存和刷新源碼時(shí),Revel會(huì)自動(dòng)編譯代碼和模板;全棧特性,支持路由、參數(shù)解析、緩存、測(cè)試、國(guó)際化等功能。

8、InfluxDB(分布式數(shù)據(jù)庫(kù))

一個(gè)Go語(yǔ)音編寫(xiě)的開(kāi)源分布式的時(shí)序、事件和指標(biāo)數(shù)據(jù)庫(kù),無(wú)需外部依賴(lài)。其設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)分布式和水平伸縮擴(kuò)展。

9、.Syncthing(云盤(pán))

一款用Go語(yǔ)言編寫(xiě)的開(kāi)源云存儲(chǔ)和同步服務(wù)工具,用戶的數(shù)據(jù)將由自己完全控制,所有的通信全都加密,每個(gè)訪問(wèn)節(jié)點(diǎn)都用加密證書(shū)驗(yàn)證。該項(xiàng)目被認(rèn)為是Dropbox和 BitTorrent Sync的開(kāi)源替代,Syncthing之所以選擇Go語(yǔ)言,也是出于跨平臺(tái)考慮。

10、Gogs(自助Git服務(wù))

Gogs則是一款由國(guó)人無(wú)聞( GitHub)開(kāi)發(fā)的自助Git服務(wù)項(xiàng)目。Gogs的目標(biāo)是打造一個(gè)最簡(jiǎn)單、最快速和最輕松的方式搭建自助Git服務(wù)。據(jù)作者稱(chēng),之所以選擇使用Go語(yǔ)言開(kāi)發(fā),就是Go允許Gogs可以通過(guò)獨(dú)立的二進(jìn)制分發(fā),且對(duì)跨平臺(tái)有良好支持。

Go目前行業(yè)里主流的就業(yè)方向是什么?

首先,在Web領(lǐng)域,Java/php能做什么Go就能做什么,而且更加簡(jiǎn)單高效;

在以下場(chǎng)景中,Go尤其凸顯語(yǔ)言?xún)?yōu)勢(shì):

  • 對(duì)效率要求高的場(chǎng)景:比如 推薦引擎 ,要迅速根據(jù)大數(shù)據(jù)分析形成用戶畫(huà)像,并生成推薦內(nèi)容——所以今日頭條的推薦引擎就是用Go來(lái)做的;

  • 復(fù)雜算法場(chǎng)景:比如大數(shù)據(jù)排序,以前用C/C++來(lái)做,現(xiàn)在可以使用Go來(lái)做;

  • 高并發(fā)場(chǎng)景:一個(gè)Go語(yǔ)言開(kāi)發(fā)的服務(wù)端可執(zhí)行程序能承受百萬(wàn)級(jí)并發(fā),而Java要使用更多的服務(wù)器來(lái)做負(fù)載均衡,這就增加了成本;

  • 分布式場(chǎng)景:尤其是大規(guī)模分布式場(chǎng)景,或者計(jì)劃要加入?yún)^(qū)塊鏈的服務(wù)器節(jié)點(diǎn)。

感謝各位的閱讀,以上就是“go語(yǔ)言能不能做后端”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)go語(yǔ)言能不能做后端這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI