深度剖析 Apache EventMesh 云原生分布式事件驱动架构

这篇具有很好参考价值的文章主要介绍了深度剖析 Apache EventMesh 云原生分布式事件驱动架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

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

本文会从以下几个方面来剖析 Apache EventMesh 云原生分布式事件驱动架构:

  • 什么是 EventMesh
  • 云原生生态下的事件驱动架构模型
  • EventMesh 架构
  • EventMesh 的相关特性以及应用场景
  • 总结回顾
  • 未来规划与发展

二、什么是 EventMesh

Apache EventMesh 是⼀个⽤于解耦应⽤和后端中间件层的动态云原⽣事件驱动架构基础设施。它⽀持⼴泛的⽤例,包括复杂的混合云、使⽤了不同技术栈的分布式架构。

深度剖析 Apache EventMesh 云原生分布式事件驱动架构
上面这张图我们可以看到 EventMesh 所处的位置就是连接云应用和基础设施的一个中间层, Event Mesh 与 Service Mesh 具有同等的定位,而且它本身支持云原生的部署方式并且可以在 Kubernetes 上运行。

Service Mesh 更多的是集成 RPC 的服务,是同步调用的,可能存在一定的耦合度。而对于 Event Mesh 来说,更多的是集成的事件驱动的微服务,这种微服务的特性就是松耦合和异步的。

三、云原生生态下的事件驱动架构模型

3.1 事件编排和计算

深度剖析 Apache EventMesh 云原生分布式事件驱动架构

从上面这张图可以看出,EventMesh 可以接入的应用有很多:分布式应用、云原生应用和服务、IoT 设备、数据流、云合作伙伴以及其它的云厂商。通过标准的 CloudEvents 协议接入到 EventMesh,通过这种事件驱动的架构,可以提高应用的弹性伸缩能力,因为它们借助 EventMesh 实现了通信的解耦。

EventMesh 内部具有 Orchestrator 的能力,可以自定义数据源触发器以及实时处理函数,对于其它接收到的事件,Orchestrator 可以路由到上面这些服务,包括无服务的计算(像容器、函数、IoT 应用)、监控或通知类服务、数据分析类服务。

3.2 事件驱动 WebHook

深度剖析 Apache EventMesh 云原生分布式事件驱动架构

举个例子,比如我在 Github 上提了一个 PR,其实都是可以配置这种 WebHook 的,其实就是类似这种旁路消息的通知机制,有任何的变动,都会推送过来。对于通知服务来讲,它并不关注推送的目标是谁,并且也不关注我产生的事件你是如何使用的或者被谁使用,它只关注产生事件就好。

那基于这样的场景接入到 EventMesh 的话,那 EventMesh 其实具备事件路由、事件转换、事件过滤的能力,你可以基于这样的事件去配置相应的规则,比如正向过滤、排除过滤。

四、EventMesh 架构

深度剖析 Apache EventMesh 云原生分布式事件驱动架构
EventMesh 本身对外提供了轻量级客户端,标准化接口和协议。上面我们有讲到 EventMesh 的定位是基于应用与基础设施的中间层。应用通过轻量级客户端可以接入 EventMesh,进而实现与基础设施强绑定的解耦。

上图的左边部分也就是我们 EventMesh 内部的一个架构,EventMesh 对外提供了不同类型的 API,包括 Java、Go、C、Python 等。左边最中间这部分其实是 EventMesh 的运行时状态,它本身支持集群化 Gateway 的方式部署,同时也可以支持容器化 Sidecar 的方式部署。

EventMesh 内部主要分成以下几个部分:协议、可观测性、处理器、编排以及存储。不同的部分都做了插件化处理,像协议的部分支持 HTTP、TCP、gRPC、MQTT,内部通信的话都会转成 CloudEvents,相当于适配器的功能。

五、EventMesh 的相关特性以及应用场景

5.1 EventMesh 插件化设计

SPI(Service Provider Interface)机制
深度剖析 Apache EventMesh 云原生分布式事件驱动架构
设计思想:

  • 遵循开闭原则
  • 面向标准化接口编程+策略模式+配置文件
  • 将运行时与插件解耦,便于扩展插件,以及运行态动态加载插件

5.2 Data Mesh

深度剖析 Apache EventMesh 云原生分布式事件驱动架构
借助 EventMesh 可以将事件源与事件目标进行打通,比如左边的 RDMS 关系型数据库的数据发生了更新,EventMesh 将以通知的形式通知到事件目标比如 MQ,这样就可以跨消息中间件、跨存储的一个同步。这里其实借助 EventMesh brige 的能力,看起来只是像跨组件,但实际上两边的 EventMesh 可能不是一个集群的,它其实可以跨网络,往大的说还可以跨企业之间的联通,以及公有云与私有云的数据交换。

场景一:跨网络区域流量复制

深度剖析 Apache EventMesh 云原生分布式事件驱动架构

场景二:跨事件存储数据传输

深度剖析 Apache EventMesh 云原生分布式事件驱动架构

5.3 EventMesh Workflow

场景:电商场景

深度剖析 Apache EventMesh 云原生分布式事件驱动架构
EventMesh 在整个事件驱动的这套系统中,起到的是事件编排的能力,EventMesh 会有无服务计算的工作流引擎,同时配合 AsyncAPI,AsyncAPI 可以定义这些服务节点的描述,Workflow 的工作引擎是符合 Serverless Workflow 规范标准的,通过这种方式可以完成一套工作流的定制与运作。

  • Online Store App Service DSL
    深度剖析 Apache EventMesh 云原生分布式事件驱动架构
  • Order Service DSL
    深度剖析 Apache EventMesh 云原生分布式事件驱动架构
  • Other Service DSLs …

5.4 EventMesh Workflow Engine

深度剖析 Apache EventMesh 云原生分布式事件驱动架构
EventMesh Workflow Engine 主要分为三大块:EventMesh Catalog、EventMesh Workflow Engine、EventMesh Runtime。

对于 EventMesh Catalog 而言,其实就是对哪些服务定义了,定义了之后,通过 Catalog 内部的 AsyncAPI 解析器,解析出来 Publisher Module、Channel Module、Subscriber Module,这些节点在下面的工作流 DSL 定义,EventMesh Workflow Engine 解析到 Workflow 节点后,会跟 EventMesh Catalog 有个交互,会查询服务有哪些 Publisher 以及 Subscriber,Engine 这边触发了事件后,会发给 EventMesh Runtime,最后才会推给下游的应用,整个一套 EventMesh Workflow Engine 是可以实现工作流的流转。

六、总结回顾

  • 轻松构建松耦合、分布式事件驱动架构。
  • 开放兼容,原生支持 CloudEvents SDK 和 API,易扩展。
  • 打破数据孤岛,支持企业全联接、数字化、多云协同。

七、未来发展与规划

深度剖析 Apache EventMesh 云原生分布式事件驱动架构文章来源地址https://www.toymoban.com/news/detail-488009.html

到了这里,关于深度剖析 Apache EventMesh 云原生分布式事件驱动架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Elasticsearch分布式一致性原理剖析(一)-节点篇

    Elasticsearch分布式一致性原理剖析(一)-节点篇

    “Elasticsearch分布式一致性原理剖析”系列将会对Elasticsearch的分布式一致性原理进行详细的剖析,介绍其实现方式、原理以及其存在的问题等(基于6.2版本)。 ES目前是最流行的分布式搜索引擎系统,其使用Lucene作为单机存储引擎并提供强大的搜索查询能力。学习其搜索原理,则

    2024年01月24日
    浏览(19)
  • Zookeeper分布式一致性协议ZAB源码剖析

    Zookeeper分布式一致性协议ZAB源码剖析

    ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。 Zookeeper 是一个为分布式应用提供高效且可靠的分布式协调服务。在解决分布式一致性方面,Zookeeper 并没有使用 Paxos ,而是采用了 ZAB 协议,ZAB是Paxos算法的一种简化实现。 ZAB 协议定义:ZAB 协议是为分布式协调服

    2024年02月07日
    浏览(21)
  • Elasticsearch分布式一致性原理剖析(二)-Meta篇

    Elasticsearch分布式一致性原理剖析(二)-Meta篇

    Elasticsearch分布式一致性原理剖析(二)-Meta篇 - 知乎 本文首发于云栖社区(Elasticsearch分布式一致性原理剖析(二)-Meta篇-博客-云栖社区-阿里云 ),由原作者转载。 “Elasticsearch分布式一致性原理剖析”系列将会对Elasticsearch的分布式一致性原理进行详细的剖析,介绍其实现方式、原

    2024年01月24日
    浏览(18)
  • Elasticsearch分布式一致性原理剖析(三)-Data篇

    Elasticsearch分布式一致性原理剖析(三)-Data篇

    本文首发于云栖社区( Elasticsearch分布式一致性原理剖析(三)-Data篇-博客-云栖社区-阿里云 ),由原作者转载。 “Elasticsearch分布式一致性原理剖析”系列将会对Elasticsearch的分布式一致性原理进行详细的剖析,介绍其实现方式、原理以及其存在的问题等(基于6.2版本)。前两篇文章

    2024年01月24日
    浏览(14)
  • 分布式搜索引擎elasticsearch搜索功能介绍及实际案例剖析

    分布式搜索引擎elasticsearch搜索功能介绍及实际案例剖析

    1.1.1 DSLQuery的分类 Elasticsearch提供了基于JSON的DSL(Domain Specific  Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如: match_query mu

    2024年02月20日
    浏览(14)
  • 分布式存储系统举例剖析(elasticsearch,kafka,redis-cluster)

    分布式存储系统举例剖析(elasticsearch,kafka,redis-cluster)

    1. 概述 对于分布式系统,人们首先对现实中的分布式系统进行高层抽象,然后做出各种假设,发展了诸如CAP, FLP 等理论,提出了很多一致性模型,Paxos 是其中最璀璨的明珠。我们对分布式系统的时序,复制模式,一致性等基础理论特别关注。 在共识算法的基础上衍生了选举

    2024年02月12日
    浏览(13)
  • 一键构建分布式云原生平台

    一键构建分布式云原生平台

    🏆作者简介: 哪吒 ,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 , 专注Java硬核干货分享,立志做到Java赛道全网Top N。 🏆本文收录于 Java基础教程系列(进阶篇) ,本专栏是针对大学生、初级Java工程师精心打造, 针对Java生态,逐个击破,

    2023年04月17日
    浏览(11)
  • 分布式数据库Apache Doris简易体验

    📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前服务于工业互联网 擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优

    2024年02月06日
    浏览(18)
  • 华为云分布式云原生UCS,助力MetaERP构建企业级高可用分布式业务

    华为云分布式云原生UCS,助力MetaERP构建企业级高可用分布式业务

    本文分享自华为云社区《华为云分布式云原生UCS,助力MetaERP构建企业级高可用分布式业务》,作者:云容器大未来。 华为云最近成为《Forrester Wave™: Multicloud Container Platforms, Q4 2023》报告中唯一入选的中国厂商,市场表现强劲。华为云分布式云原生 UCS 作为本次参评的关键服

    2024年02月03日
    浏览(13)
  • 云原生系列之分布式架构设计要点

    到目前来看整个架构的演变过程是从单体到水平垂直扩展,再到 SOA 设计,领域驱动设计,事件驱动设计,后到云原生的架构和优势,如果在技术网站甚至微信公众号就可以搜到一堆关于这些的架构设计说明,现在我想换一种方式,从某个点出发,某个概念出发,某个模式出

    2024年04月16日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包