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