EventMesh:微衆銀行開源的新型雲原生事件驅動架構實踐

{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2020年,微衆銀行在 GitHub 上正式開源了 EventMesh。作爲一個動態的插件式雲原生基礎服務,EventMesh提供了靈活,可靠和快速的事件分發與處理,並且可以進行管理。本篇文章將圍繞 EventMesh 起源及原理等方面進行介紹,並結合微衆銀行的實踐經驗帶領大家一起探索事件驅動架構。"}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"什麼是事件驅動架構"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"近年來,隨着微服務、雲原生和Serverless概念的普及以及容器化技術的發展,事件驅動也再次成爲熱點,引起IT界廣泛的關注。事件驅動架構是一種用於設計應用的軟件架構和模型。對於事件驅動系統而言,事件的捕獲、通信、處理和持久保留是解決方案的核心結構。事件驅動架構可以最大程度減少耦合度,很好地擴展與適配不同類型的服務組件,因此是現代化分佈式應用架構的理想之選。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/ba\/6f\/baeecd898de19e0b710e431f8a23cc6f.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"解耦"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/94\/09\/941424d0b74d03649abc9c33926bd009.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於這種松耦合,微服務可以用不同的語言實現。解耦後的微服務能夠輕鬆地在網絡上相互獨立地擴展,通過動態添加或刪除事件生產者和消費者來修改他們的系統,而不需要更改任何微服務中的任何邏輯。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"基於推送通知的消息傳輸機制"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/b6\/a4\/b65b9a776105a97e75ac130f09bd17a4.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"事件驅動的體系結構中,客戶端無需輪詢就可以接收更新,事件在到達事件存儲後就會通知給客戶端,客戶端可以隨時接收更新,這對於動態數據轉換、分析和數據科學處理非常有用。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"可追溯與審計"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/d8\/fa\/d88cc6c4c40f3dd0a982779b11a955fa.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"事件流是事實的不變流,其中每個事實由流中的事件表示。每當實體狀態發生變化時,都會發出一個新事件。事件驅動的體系結構可以通過實現事件追溯(Event Sourcing)等模式來提供不可變事件的日誌,這是審計的關鍵。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"加速機器學習與數據科學的模型選擇"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/99\/4e\/9907004fefd0c90c262de55e5c405b4e.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"事件驅動架構爲加速機器學習模型從開發到生產提供了一種有效的方法,可允許使用機器學習技術的系統同時針對數據測試多個模型,並在正確的時間提供最合適的模型。模型可以使用業務事件,實時地將結果廣播給另一個服務,該服務可以根據一些關於速度、預測精度等的業務標準選擇服務哪個模型。因爲模型可以不斷地測試和改進,所以該體系結構允許更快的、迭代的開發,可以快速地部署到生產環境中。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"EventMesh是什麼"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"EventMesh 是以事件驅動爲核心的基礎服務,EventMesh 之於微服務與Service Mesh具有同等的定位。EventMesh作爲動態的插件式雲原生基礎服務層,將應用程序和中間件層分離,並提供了靈活,可靠和快速的事件分發能力,同時可以對事件進行管理,可以作爲應用進程的連接層,提供企業實現其數字化轉型目標所需的全套應用進程間通信模式。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"爲什麼需要EventMesh"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"EventMesh可以作爲Service Mesh的補充,在應用程序之間實現更好的通信,並允許應用程序通過將某些功能放在網絡層和應用程序層之間使我們可以更多地關注業務邏輯。但是,相比之下,兩者有一些重要的區別:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這些區別體現了EventMesh的異步通信的特點和優勢,以及相比Service Mesh具有覆蓋更廣泛應用場景的能力。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"微衆銀行EventMesh整體架構"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/45\/8c\/4519f92ded72b8a69d3e75f4a1641c8c.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"EventMesh 目前整體的架構如上圖所示,通過以事件驅動爲核心的體系結構,實現了應用程序與中間件層的解耦分離。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"同時目前EventMesh 分別提供了HTTP API與TCP API更加方便多語言客戶端的接入代理。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"      "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"EventMesh-Runtime組件以插件化的形式運行了不同的Connector, 進而支持對接多種Event Store,客戶端通過向Runtime發出發佈\\訂閱指令,完成事件的發佈與訂閱。Runtime基於Open Messaging Connector Interface接口,實現對Connector的調度,客戶端所發出的事件交予Runtime調度的Connector,將事件存儲到對應的Event Store中進而再由訂閱對應事件的EventMesh將事件接收並轉發給所代理的下游客戶端。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"      "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"EventMesh Runtime大大簡化了客戶端的邏輯,自身提供了事件的發佈\\訂閱、治理、傳輸加密、事件路由、Session管理、負載均衡、指標監控等能力。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"      "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"同時EventMesh作爲以事件驅動架構爲核心的中間件基礎服務,積極擁抱雲原生,支持動態擴縮容,具備容器化安裝部署的能力。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"關鍵部件"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"eventmesh-runtime:一種中間件,用於在事件產生者和消費者之間傳輸事件,支持雲原生應用程序和微服務"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"eventmesh-sdk-java:當前支持HTTP和TCP協議,未來會支持gRPC等"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"eventmesh-registry:自動在連接到EventMesh的應用程序和服務之間路由事件, 管理runtime"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"eventmesh-connector-defibus : 一種基於OpenMessagingConnector 接口的實現,支持將DeFiBus作爲事件存儲,運行於eventmesh-runtime之上,實現事件的發佈與訂閱"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"eventmesh-connector-rocketmq : 一種基於OpenMessagingConnector 接口的實現,支持將RocketMQ作爲事件存儲,運行於eventmesh-runtime之上,實現事件的發佈與訂閱"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/81\/8c\/81a4d844c3e08e36b3d8bde307de998c.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":1,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#333333","name":"user"}}],"text":"通過上圖可以將EventMesh 橫向分爲Control Panel、Data Panel、Store Panel三層。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Data PanelApp與EventMesh的事件信息交互處於Data Panel中,從該模型可以看出EventMesh 充分地將事件生產者與消費者進行了解耦,任何事件生產者都不需要知道它們的事件消費者。類似地,當任何事件消費者使用消息時,它們只需要訂閱事件流。事件的生產者與消費者均可以彈性地擴縮容而互無影響。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Control PanelControl Panel 中分爲治理模塊、註冊模塊、安全模塊、指標模塊、追蹤定位模塊, 這些模塊都將採用業界通用、優秀的解決方案與EventMesh進行對接,進而豐富EventMesh的生態環境。例如:註冊模塊可對接Nacos、指標模塊可對接Prometheus、追蹤定位模塊可對接SkyWalking等。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Store PanelStore Panel 爲事件存儲面板,藉助connector插件,客戶端通過EventMesh可以將事件發佈到對應的事件存儲中,目前已支持DeFiBus、RocketMQ作爲事件存儲,用戶可根據業務的使用場景來選擇對應事件存儲,進而體驗不同事件存儲的相關特性。"}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"EventMesh核心特性與能力"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通過上述的架構圖例與模塊的介紹,我們初步瞭解了EventMesh的架構與模塊間的職能,從產品的角度而言EventMesh自身具有以下的特性與能力:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"可插拔式事件存儲:EventMesh不僅將事件生產者與消費者進行解耦,還降低了運行時與事件存儲代碼之間的耦合度。事件存儲(DeFiBus\/RocketMQ\/Kafka\/Redis 等)以插件化的形式接入EventMesh,因此EventMesh可以更爲靈活地擴展事件存儲,通過對接不同的事件存儲,用戶可以享受到不同事件存儲所具有的特性。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"雲原生:EventMesh 遵循面向雲原生的OpenMessaging接口定義,通過不同事件存儲插件對接口的實現,完成事件的發佈\\訂閱,同時EventMesh對事件的定義遵循Cloud Event 標準協議,統一了不同語言事件接入的協議入口。同時EventMesh支持sideCar形式的部署模式,可通過K8S進行管理。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"多語言代理接入,協議簡化:EventMesh可爲多種語言(java\/go\/python\/c\/...)進行代理,目前提供http\/tcp 兩種接入方式, 客戶端不需關注事件存儲組件的相關協議,僅需遵循EventMesh協議,與EventMesh對接,減少了直接對接事件存儲的複雜度,降低不同語言客戶端的接入成本。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"集羣高可用:EventMesh具有集羣化能力,客戶端通過負載均衡策略與EventMesh集羣建連,支持gateWay形式的部署模式,EventMesh對客戶端支持組級別代理。"}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"EventMesh特性規劃"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"上述是EventMesh目前所支持的特性與功能,而作爲以事件驅動架構爲核心的基礎服務,EventMesh在未來還會圍繞事件標準協議、事件生命週期管理、事件編排與治理、相關指標採集與安全監控等特性方面做出相關規劃,具體如下:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持Cloud Event事件標準協議"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持事件溯源與事務"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/03\/28\/033063993347a4bc9000553325378728.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於saga的分佈式事務的思想設計實現,需要考慮事務補償、重試,同時下游系統要保證冪等,以及事務補償的成功性,不需人工介入。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/ae\/cd\/ae19860344d19004b1940e0452945acd.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"事件的溯源與重現,配合CQRS,需通過領域模型設計聚合對象、EventStore與聚合資源庫、物化視圖與查詢。可以使用Event Sourcing的事件數據來分析數據產生的過程,解決bug,也可以用來分析用戶的行爲。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/0e\/17\/0e65bd1841bcf81217e49a8af4450d17.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持事件過濾"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/69\/48\/69fddee8bce32efe229fdeae67c8ae48.gif","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持對接 Promethus指標採集"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持多語言SDK(c\\go\\python\\wsam)"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持事件編排,工作流處理"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持事件治理"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持對接Skywalking、zipkin等進行事件跟蹤"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持對接Spiffe等進行事件安全管控"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持openmessaging-storage-dledger爲默認事件存儲實現。dledger是一款OpenMessaging中基於raft打造的commitLog存儲庫實現,可以作爲分佈式存儲系統的持久層,具有高可用、高持久、強一致的特性。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持事件管理臺"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持事件schema註冊表通過對事件schema的註冊管理,來確保事件報文的準確性,提升事件觸達的成功率。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持grpc協議"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持MQTT協議"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"支持函數式觸發器與綁定,對接Serverless支持。通過配置方法名與參數,動態路由函數式接口。"}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"最後"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"EventMesh和DeFiBus目前支撐了微衆銀行每天億級的金融交易,且已經開源。DeFiBus是一款由微衆銀行打造的安全可控的分佈式金融級消息總線,提供了RPC同步調用,還提供了MQ的異步事件通知、事件組播和廣播等常用服務調用和消息模式,同時增加了應用多中心多活、服務就近、灰度發佈等分佈式場景下的高可用能力。在對於機器故障的容錯能力方面的增強,也讓消息總線的服務更加穩定可靠。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"相關鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/github.com\/WeBankFinTech\/EventMesh"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/gitee.com\/webank\/EventMesh"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/github.com\/WeBankFinTech\/DeFiBus"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/gitee.com\/webank\/DeFiBus"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章