微服务的终极目标,Mecha分布式运行时之Dapr
1. Mecha 是啥?
微服務(wù)發(fā)展到今天,已經(jīng)有很多公司多年前已經(jīng)改造完畢,也有些公司還在路上,微服務(wù)的優(yōu)勢(shì),有過(guò)了解的朋友應(yīng)該也都能說(shuō)出個(gè)一二三來(lái),經(jīng)歷過(guò)微服務(wù)改造的,應(yīng)該都知道其中的艱辛。
單體服務(wù)有著很多優(yōu)勢(shì),結(jié)構(gòu)簡(jiǎn)單、事務(wù)的ACID保證,系統(tǒng)內(nèi)的無(wú)縫調(diào)用,一旦改造為微服務(wù),必然是分布式服務(wù)構(gòu)造,服務(wù)間的不穩(wěn)定性,通訊的復(fù)雜性都使得整個(gè)系統(tǒng)的復(fù)雜性提升。
隨著大量的三方服務(wù)的引入,也帶來(lái)了網(wǎng)絡(luò)、綁定、狀態(tài)、生命周期管理等的各方面膨脹的需求,Red Hat的首席架構(gòu)師Bilgin Ibryam從自己的經(jīng)驗(yàn)出發(fā),提出了未來(lái)的發(fā)展方向——多運(yùn)行時(shí)微服務(wù)架構(gòu)。
他簡(jiǎn)要的概括了微服務(wù)的在四個(gè)維度的基本需求。
為了滿足這些需求,或者換句話說(shuō),應(yīng)該有個(gè) 機(jī)甲裝備-Macha,穿上它,就能實(shí)現(xiàn)微服務(wù)。
是的,從蠻荒走向科技,必然會(huì)形成的科技天梯。
業(yè)務(wù)人員在未來(lái)的某一天,可以不需要考慮這些基礎(chǔ)設(shè)施服務(wù),只需要一張清單,Mecha就能滿足你。
2.微軟開(kāi)源的世界第一個(gè)分布式運(yùn)行時(shí)Dapr
順時(shí)而生的Dapr,是不是那個(gè)贏家?
官方介紹:Dapr 是一個(gè)可移植的、無(wú)服務(wù)器的、事件驅(qū)動(dòng)的運(yùn)行時(shí),它使開(kāi)發(fā)人員可以輕松構(gòu)建在云和邊緣運(yùn)行的彈性、無(wú)狀態(tài)和有狀態(tài)的微服務(wù),并包含語(yǔ)言和開(kāi)發(fā)人員框架的多樣性。
Dapr 將構(gòu)建微服務(wù)應(yīng)用程序的最佳實(shí)踐編碼為開(kāi)放、獨(dú)立的構(gòu)建塊,使您能夠使用您選擇的語(yǔ)言和框架構(gòu)建可移植的應(yīng)用程序。每個(gè)構(gòu)建塊都是獨(dú)立的,您可以在應(yīng)用程序中使用其中的一個(gè)、部分或全部。
是的,Dapr制定了和各個(gè)基礎(chǔ)服務(wù)通訊的標(biāo)準(zhǔn),并對(duì)我開(kāi)放Api以實(shí)現(xiàn)編碼語(yǔ)言的弱依賴。其提供了眾多語(yǔ)言的HTTP、GRPC協(xié)議的SDK,使得你可以使用薄薄的SDK層,就可以和所有基礎(chǔ)設(shè)施服務(wù)進(jìn)行通訊。
Dapr部署方式可以是SideCar,或者Node方式,其來(lái)自云原生,和Kuberbetes配合極好;在沒(méi)有K8s的環(huán)境也可以運(yùn)行,部署靈活而不限制。
除了能夠和其他基礎(chǔ)設(shè)施服務(wù)進(jìn)行通信外,其還提供了狀態(tài)管理、pub/sub消息、Actors、可觀測(cè)、安全存儲(chǔ)等特性。
哦哦哦,令我遺憾的是它竟然是Go語(yǔ)言寫(xiě)的,好吧,又是Go語(yǔ)言從業(yè)者的狂歡。
3.dapr特性
事件驅(qū)動(dòng)的發(fā)布訂閱系統(tǒng),具有可插入的提供者和至少一次語(yǔ)義
與可插入提供程序的輸入和輸出綁定
具有可插拔數(shù)據(jù)存儲(chǔ)的狀態(tài)管理
一致的服務(wù)到服務(wù)發(fā)現(xiàn)和調(diào)用
選擇加入有狀態(tài)模型:強(qiáng)/最終一致性,先寫(xiě)/最后寫(xiě)獲勝
跨平臺(tái)虛擬演員
從安全密鑰庫(kù)中檢索秘密的秘密管理
速率限制
內(nèi)置可觀察性支持
使用專用的 Operator 和 CRD 在 Kubernetes 上本地運(yùn)行
通過(guò) HTTP 和 gRPC 支持所有編程語(yǔ)言
來(lái)自 Azure、AWS、GCP 的多云、開(kāi)放組件(綁定、發(fā)布-訂閱、狀態(tài))
在任何地方運(yùn)行,作為一個(gè)進(jìn)程或容器化
輕量級(jí)(58MB 二進(jìn)制,4MB 物理內(nèi)存)
作為 sidecar 運(yùn)行 - 無(wú)需特殊 SDK 或庫(kù)
專用 CLI - 易于調(diào)試的開(kāi)發(fā)人員友好體驗(yàn)
Java、.NET Core、Go、Javascript、Python、Rust 和 C++ 的客戶端
4. 底層服務(wù)已經(jīng)支持
可以到這里查看支持列表。
目前版本1.30,有微服務(wù)改造需求的童鞋,可以重點(diǎn)考慮該技術(shù)。
???? 5. 小結(jié)
例行小結(jié),理性看待!
結(jié)的是啥啊,結(jié)的是我想你點(diǎn)贊而不可得的寂寞。????????????
????都看到這了,還在乎點(diǎn)個(gè)贊嗎?
????都點(diǎn)贊了,還在乎一個(gè)收藏嗎?
????都收藏了,還在乎一個(gè)評(píng)論嗎?
總結(jié)
以上是生活随笔為你收集整理的微服务的终极目标,Mecha分布式运行时之Dapr的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: UOS LoongArch 上成功安装.
- 下一篇: 两头编程,测试中间