思否开源项目推介丨EventMesh:云原生事件基础设施

开源项目名称:EventMesh
开源项目简介:动态插件式云原生基础服务
开源项目类型:企业开源项目
项目建立时间:2020 年 8 月
GitHub 数据:416 Star,105 Fork
GitHub 地址: https://github.com/WeBankFinT...

1、项目背景

近年来,随着微服务、容器、服务网格、 Serverless 等云原生技术的发展,事件驱动架构也再次成为热点,引发 IT 界普遍的关注。事件驱动架构是一种用于设计应用的软件架构和模型。对于事件驱动系统而言,事件的捕获、通讯、处理和持久保留是解决方案的核心结构。事件驱动架构能够最大程度减小耦合度,很好地扩展与适配不一样类型的服务组件,所以是现代化分布式应用架构的理想之选。java

而微众开源的 EventMesh 项目就是以事件驱动为核心的分布式服务运行时,经过动态的插件式云原生基础服务层,将应用程序和中间件层分离,并提供了灵活,可靠和快速的事件分发和处理能力,同时能够对事件进行管理,能够做为应用进程的链接层,提供企业实现其数字化转型的目标所需的全套应用进程间通讯模式。python

EventMesh 项目于 2020 年 8 月在 GitHub 上对外开源,早期是为了解决微众银行内部多语言客户端接入消息总线的问题,随着云原生技术的不断发展成熟与落地,富客户端的复杂逻辑逐渐下沉到 EventMesh 中,演变成为了 Sidecar 服务,同时也可做为 Gateway 集群部署,以一种更通用的协议接口暴露服务,简化事件应用开发,供各类事件源和事件目标集成。git

今年 2 月 EventMesh 正式经过国际顶级开源组织 Apache 软件基金会(简称 ASF )的投票决议,以全票经过的优秀表现成为 ASF孵化器项目。这是国内金融行业首个进入 ASF 孵化器的开源项目,标志着微众银行在践行金融科技全面开源道路上的重要里程碑。github

2、项⽬介绍

image.png

EventMesh是一个动态的云原生事件驱动架构基础设施,用于分离应用程序和后端中间件层,它支持普遍的用例,包括复杂的混合云、使用了不一样技术栈的分布式架构。segmentfault

EventMesh架构:后端

image.png

EventMesh云原生结构:网络

image.png

Event Mesh容许未来自一个应用程序的事件动态路由到任何其余应用程序。Event Mesh的通常功能:架构

  • 事件驱动
  • 事件治理
  • 动态路由
  • 云原生
  • 流控
  • 负载均衡

关键部件:负载均衡

  • eventmesh-runtime:一种中间件,用于在事件产生者和使用者之间传输事件,支持云原生应用程序和微服务
  • eventmesh-sdk-java:当前支持HTTP和TCP协议,将来会支持gRPC等
  • eventmesh-connector-rocketmq : 一种基于OpenMessagingConnector 接口的实现,该实现支持将RocketMQ做为事件存储,实现事件的发布与订阅

3、项目核心特性与能力

  • 可插拔式事件存储

EventMesh 不只将事件生产者与消费者进行解耦,还下降了运行时与事件存储代码之间的耦合度。事件存储(DeFiBus/RocketMQ/Kafka/Redis 等)以插件化的形式接入 EventMesh,所以 EventMesh 能够更为灵活地扩展事件存储,经过对接不一样的事件存储,用户能够享受到不一样事件存储所具备的特性。less

  • 云原生

EventMesh 遵循面向云原生的 OpenMessaging 接口定义,经过不一样事件存储插件对接口的实现,完成事件的发布订阅,同时 EventMesh 对事件的定义遵循 Cloud Event 标准协议,统一了不一样语言事件接入的协议入口。同时 EventMesh 支持 sideCar 形式的部署模式,可经过K8S进行管理。

  • 多语言代理接入,协议简化

EventMesh 可为多种语言 (java/go/python/c/...)进行代理,目前提供http/tcp 两种接入方式, 客户端不需关注事件存储组件的相关协议,仅需遵循 EventMesh 协议,与 EventMesh 对接,减小了直接对接事件存储的复杂度,下降不一样语言客户端的接入成本。

  • 集群高可用

EventMesh 具备集群化能力,客户端经过负载均衡策略与 EventMesh 集群建连,支持 gateWay 形式的部署模式,EventMesh 对客户端支持组级别代理。

4、项目推荐

EventMesh 能够做为 Service Mesh 的补充,在应用程序之间实现更好的通讯,并容许应用程序经过将某些功能放在网络层和应用程序层之间使咱们能够更多地关注业务逻辑。可是,相比之下,二者有一些重要的区别:

image.png

这些区别体现了 EventMesh 的异步通讯的特色和优点,以及相比 Service Mesh 具备覆盖更普遍应用场景的能力。诚邀关注云计算的你一同参与到 EventMesh 的建设中。

5、项目自荐

以 EDA+Serverless 架构理念驱动的 Apache EventMesh 填补了开源领域在 Eventing as A Infrastructure 的空白,它能解耦、屏蔽应用与底层中间件交互细节,结合 Knative、KEDA 等容器化技术,实现多形态部署,具备很是光明的发展前景。很是期待更多的贡献者加入到这个极富生命力的社区,共同打造云原生时代面向应用开发的核心基础设施。

思否开源项目推介

该项目已入选「SFOSSP - 思否开源项目支持计划」,咱们但愿借助社区的资源对开源项目进行相关的宣传推广,并做为一个长期项目助力开源事业的发展,与广大开发者共建开源新生态。

有意向的开源项目负责人或团队成员,可经过邮箱提供相应的信息(开源项目地址、项目介绍、团队介绍、联系方式等),以便提高交流的效率。

联系邮箱:pr@segmentfault.com

segmentfault 思否

相关文章
相关标签/搜索