真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語言和netcore go語言和python的區(qū)別

.NETCore微服務(wù)之:基于Consul實現(xiàn)服務(wù)治理

本篇文章為.NETCore實現(xiàn)企業(yè)級微服務(wù)架構(gòu)技術(shù)點介紹

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名與空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、蕪湖網(wǎng)站維護、網(wǎng)站推廣。

Consul是一個分布式,高可用、支持多數(shù)據(jù)中心的服務(wù)注冊、發(fā)現(xiàn)、健康檢查和配置共享的服務(wù)軟件。

由 HashiCorp 公司用 Go 語言開發(fā) 推出的開源產(chǎn)品

用于實現(xiàn)分布式系統(tǒng)的服務(wù)發(fā)現(xiàn)、服務(wù)隔離、服務(wù)配置。

這些功能中的每一個都可以根據(jù)需要單獨使用,也可以同時使用所有功能。Consul 官網(wǎng)目前主要推 Consul 在服務(wù)網(wǎng)格中的使用。

與其它分布式服務(wù)注冊與發(fā)現(xiàn)的方案相比:

Consul 的方案更“一站式”——內(nèi)置了服務(wù)注冊與發(fā)現(xiàn)框架、分布一致性協(xié)議實現(xiàn)、健康檢查、Key/Value 存儲、多數(shù)據(jù)中心方案,不再需要依賴其它工具。

Consul 本身使用 go 語言開發(fā),具有跨平臺、運行高效等特點,也非常方便和 Docker 配合使用。

與市面上其他系統(tǒng)比較如下:

使用Consul 的優(yōu)勢

使用 Raft 算法來保證一致性, 比復(fù)雜的 Paxos 算法更直接。相比較而言, zookeeper 采用的是 Paxos, 而 etcd 使用的則是 Raft。

支持多數(shù)據(jù)中心,內(nèi)外網(wǎng)的服務(wù)采用不同的端口進行監(jiān)聽。多數(shù)據(jù)中心集群可以避免單數(shù)據(jù)中心的單點故障,而其部署則需要考慮網(wǎng)絡(luò)延遲, 分片等情況等。zookeeper 和 etcd 均不提供多數(shù)據(jù)中心功能的支持。

支持健康檢查。etcd 不提供此功能。

支持 http 和 dns 協(xié)議接口。zookeeper 的集成較為復(fù)雜, etcd 只支持 http 協(xié)議。

官方提供 Web 管理界面, etcd 無此功能。

Consul 保持了 CAP 中的 CP,保持了強一致性和分區(qū)容錯性。

Consul 支持 Http\gRPC\DNS 多種訪問方式。

Consul的主要特點:

Service Discovery?:服務(wù)注冊與發(fā)現(xiàn)

服務(wù)注冊: 簡單理解,就是有一個注冊中心,我們的每個服務(wù)實例啟動時,都去注冊中心注冊一下,告訴注冊中心我的地址,端口等信息。同樣的服務(wù)實例要刪除時,去注冊中心刪除一下,注冊中心負責(zé)維護這些服務(wù)實例的信息。

服務(wù)發(fā)現(xiàn): 既然注冊中心維護了各個服務(wù)實例的信息,那么客戶端通過注冊中心就很容易發(fā)現(xiàn)服務(wù)的變化了。

有了服務(wù)注冊與發(fā)現(xiàn),客戶端就不用再去配置各個服務(wù)實例的地址,改為從注冊中心統(tǒng)一獲取。

那注冊中心又是怎么保證每個地址的可用狀態(tài)呢,假如某個實例掛了怎么辦呢?原則上掛掉的實例不應(yīng)該被客戶端獲取到,所以就要提到: 健康檢查 ?。

健康檢查: 每個服務(wù)都需要提供一個用于健康檢查的接口,該接口不具備業(yè)務(wù)功能。服務(wù)注冊時把這個接口的地址也告訴注冊中心,注冊中心會定時調(diào)用這個接口來檢測服務(wù)是否正常,如果不正常,則將它移除,這樣就保證了服務(wù)的可用性。

常見注冊中心: 有 Consul、ZooKeeper、etcd、Eureka。

Consul用Golang實現(xiàn)。

因此具有天然可移植性(支持Linux、windows和Mac OS X)。

安裝包僅包含一個可執(zhí)行文件,方便部署,與Docker等輕量級容器可無縫配合。

此外,關(guān)于Consul的架構(gòu)以及相關(guān)的角色,如下圖所示:

以Server模式運行的Consul Agent節(jié)點用于維護Consul集群的狀態(tài)。

官方建議每個Consul Cluster至少有 3個或以上的運行在Server Mode的Agent,Client節(jié)點不限 。

Consul支持多數(shù)據(jù)中心,每個數(shù)據(jù)中心的Consul Cluster都會在運行于Server模式下的Agent節(jié)點中選出一個Leader節(jié)點。

這個選舉過程通過Consul實現(xiàn)的raft協(xié)議保證,多個 Server節(jié)點上的Consul數(shù)據(jù)信息是強一致的。

處于Client Mode的Consul Agent節(jié)點比較簡單,無狀態(tài),僅僅負責(zé)將請求轉(zhuǎn)發(fā)給Server Agent節(jié)點。

上一篇參考 .NETCore微服務(wù)系列:

.NETCore微服務(wù)系列:基于Polly 實現(xiàn)API服務(wù)保護

下一篇為大家介紹 .NETCore微服務(wù)系列:

SkyWalking構(gòu)建調(diào)用鏈監(jiān)控

go語言以后會不會成為主流web開發(fā)語言?

不會,目前的趨勢是前后端分別,現(xiàn)在很多地方,很多公司已經(jīng)基本達成了這樣的目標(biāo),結(jié)果是前端通過JavaScript來完成相關(guān)的所有的工作,后端的實現(xiàn)相對比較復(fù)雜,可以通過golang或者Java或者點虐 core等開發(fā)語言完成,也就是說web開發(fā)完全基于js而不是其他語言。所以相關(guān)工作可以從其他語言忽略,js變成相關(guān)領(lǐng)域語言

特斯拉為何使用點虐 core技術(shù)框架?為何不用java/go等?

在linux下,同等硬件點虐 core性能是java的2-3倍!國外公司不傻,不會因為哪邊人多用哪個。


名稱欄目:go語言和netcore go語言和python的區(qū)別
分享網(wǎng)址:http://weahome.cn/article/ddipjch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部