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"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章