微服務(wù)及技術(shù)棧介紹


簡(jiǎn)介
架構(gòu)發(fā)展歷程

只能采用同一種技術(shù),很難用不同的語(yǔ)言或者相同語(yǔ)言不同版本開(kāi)發(fā)不同模塊。
系統(tǒng)耦合性太強(qiáng),其中一個(gè)模塊有問(wèn)題,這個(gè)系統(tǒng)就會(huì)癱瘓,一個(gè)模塊升級(jí),整個(gè)系統(tǒng)就得停機(jī)維護(hù)。
要上線(xiàn),必須一起上線(xiàn),互相等待,無(wú)法快速相應(yīng)市場(chǎng)需求。
集群負(fù)擔(dān)大,如果想要集群,只能對(duì)整個(gè)系統(tǒng)進(jìn)行集群,即使一個(gè)模塊有壓力。


獨(dú)立進(jìn)程部署,獨(dú)立進(jìn)程運(yùn)行,獨(dú)立演化。服務(wù)之間可以做到高內(nèi)聚,低耦合。
獨(dú)立開(kāi)發(fā)和維護(hù),業(yè)務(wù)解耦,無(wú)論是業(yè)務(wù)系統(tǒng)還是分布式服務(wù)都獨(dú)立演化。
分布式管理
隔離性增強(qiáng)
由一系列服務(wù)組裝成系統(tǒng),不用重復(fù)建設(shè),模塊、代碼可以復(fù)用。
數(shù)據(jù)一致性(多服務(wù)完成一個(gè)任務(wù))和系統(tǒng)的可用性(集群)成為問(wèn)題
數(shù)據(jù)庫(kù)也進(jìn)行了拆分
維護(hù)、設(shè)計(jì)、架構(gòu)成本增加,調(diào)試、糾錯(cuò)更難
網(wǎng)絡(luò)傳輸分布式損耗成本
不適合高并發(fā)和大數(shù)據(jù)的環(huán)境

可用性:描述一個(gè)系統(tǒng)在一段時(shí)間內(nèi)提供有用資源的能力,從而減少停工時(shí)間,而保持其服務(wù)的高度可用性。
伸縮性:根據(jù)需求動(dòng)態(tài)添加和刪除系統(tǒng)中資源的能力,是水平或垂直擴(kuò)展的專(zhuān)門(mén)實(shí)現(xiàn)。
可以使用不同語(yǔ)言或者相同語(yǔ)言的不同版本開(kāi)發(fā)各個(gè)模塊。
系統(tǒng)耦合性低,各個(gè)模塊分而治之,獨(dú)立部署,獨(dú)立發(fā)布,獨(dú)立維護(hù)。
可以更快的相應(yīng)市場(chǎng)的需求,更符合敏捷開(kāi)發(fā)。
可以對(duì)不同模塊使用集群策略,哪里有問(wèn)題治哪里。
開(kāi)發(fā)難度更大,系統(tǒng)結(jié)構(gòu)更復(fù)雜。
運(yùn)行效率低,網(wǎng)絡(luò)調(diào)用成本很大。

微服務(wù)架構(gòu)的發(fā)展歷程

服務(wù)發(fā)現(xiàn),手動(dòng)修改配置文件,重新啟動(dòng)。
負(fù)載均衡,可以輪訓(xùn)、權(quán)重、哈希等等。
服務(wù)新增無(wú)法發(fā)現(xiàn),需要手動(dòng)配置,服務(wù)掉線(xiàn)可以自動(dòng)檢查。
客戶(hù)端的實(shí)現(xiàn)很簡(jiǎn)單,不需要額外的代碼,簡(jiǎn)單,高效。

服務(wù)注冊(cè)與發(fā)現(xiàn),動(dòng)態(tài)增加,自動(dòng)完成。
健康檢查,可以查看損壞服務(wù),去掉服務(wù),自動(dòng)完成。
負(fù)載均衡,Consul返回所有活動(dòng)服務(wù)實(shí)例,客戶(hù)端自己實(shí)現(xiàn)負(fù)載均衡。


微服務(wù)架構(gòu)必備技術(shù)棧
主動(dòng)觸發(fā)
數(shù)據(jù)序列化傳遞
跨平臺(tái)
跨語(yǔ)言
Http穿透防火墻
Net Remoting:Net平臺(tái)督郵的,不支持跨平臺(tái)。
gRPC:高性能、開(kāi)源和通用RPC框架,面向服務(wù)端和移動(dòng)端,基于HTTP/2設(shè)計(jì),推薦使用。


Consul可以實(shí)現(xiàn)分布式鎖
Redis可以實(shí)現(xiàn)分布式鎖,推薦使用。
ZooKeeper可以實(shí)現(xiàn)分布式鎖
數(shù)據(jù)庫(kù)可以實(shí)現(xiàn)分布式鎖
2PC(two-phase commit protocol,強(qiáng)一致性,沒(méi)有可用性)
3PC
TCC(Try-Confirm-Cancel)
本地消息表,推薦RabbitMQ
Saga模式
上游投遞消息
下游獲取消息
上游投遞穩(wěn)定性
下游接受穩(wěn)定性

結(jié)束語(yǔ)
文章轉(zhuǎn)載: 分布式實(shí)驗(yàn)室
(版權(quán)歸原作者所有,侵刪)
![]()
