实践是知识的母亲,知识是生活的明灯。这篇文章主要讲述一文详解EventMesh落地华为云的探索及实践相关的知识,希望能为你提供帮助。
本文整理自51CTO开源基础软件学习季直播公开课《??EventMesh如何解决SaaS组合式应用集成标准化问题??》,更多精彩内容及公开课视频,可点击链接跳转查看。
Gartner 2020调查显示:到2024年,30%的电商企业将采用组合式应用创新(PBC)。
对于PBC,Gartner 是这样定义的:PBC是具有明确业务能力的多个数据模型、微服务、API应用和事件通道的集成。它以业务为驱动,能独立完成业务需求,不需要外部依赖。多个PBC可以以积木方式来建立企业解决方案,呈现完整统一的用户体验。
下图分别是单一PBC、组合PBC和多个组合PBC的示意图。
PBC尤其适合电商业务场景下使用,它的价值包括:
PBC的挑战包括:
具体到咱们今天的主题——Apache EventMesh,它是一个云原生事件驱动分布式应用运行时,可以提供轻量级、多语言客户端,支持多种通讯协议,是一个插件化架构,可以对接其他后端服务。
下图就是EventMesh的整体架构,支持TCP、HTTP、gRPC等多种协议,也可以支持java、python、C、Go等多语言客户端。纵横来说,通过插件化可以对接各类开发者需要的后端服务。
【一文详解EventMesh落地华为云的探索及实践】
EventMesh是怎么运作的呢?它是一个事件驱动的中间件,涉及到两个角色:事件生产者、事件消费者。事件生产者把事件发送到EventMesh,EventMesh把事件存储,这个事件存储可以支持RocketMQ、Kafka。
中间件的作用包括:
EventMesh对SaaS组合式应用场景是怎么做的呢?SaaS组合式应用最大的问题是集成标准化问题,而EventMesh天然可以解决这个问题。EventMesh通过gRPC支持多语言SDK, 整合TCP和HTTP协议。gRPC是谷歌开源的基于HTTP/2的高性能RPC框架,支持Client和Server双向异步通讯。gRPC数据模型是统一的,统一用Protobuf定义API接口数据模型,统一由CloudEvents定义事件模型。
在EventMesh的gRPC框架中,我们支持的gRPC事件使用场景包括:事件发送和批量事件发送、事件广播、事件请求和响应、事件订阅和推送。
在gRPC的Protobuf事件模型中,每个事件是以SimpleMessage的数据模型呈现,事件的实体内容放在 content 字段里,CloudEvents是业界流行的事件模型。
gRPC 整合了EventMesh TCP和HTTP协议,让运行时和客户端更加轻量。
从去年开始,华为云开始进行广泛调研,希望在云上做一个无服务器的事件总线。这时候我们发现EventMesh的理念跟华为云很相似,能力很强。所以我们就希望EventMesh被继续做大,可以在华为云落地——这就是事件网格 (EventGrid)诞生的背景,它是华为云中间件在云原生时代推出的新一代无服务器事件总线。
EventGrid以EventMesh作为运行时引擎,增加了华为自需的特性,包括可视化仪表盘、高级事件过滤、事件查询跟踪、死信存储等,这都是我们的自研产品。整个EventGrid以事件驱动方式对接华为云服务、微服务应用和SaaS应用。它对我们的价值是,希望通过这个服务能为华为云创造更多应用场景,丰富华为云的开发者生态。
EventGrid整个架构图跟EventMesh很类似:
EventGrid在华为云有哪些场景呢?
比如ERP场景,当新员工入职时,HR系统产生新员工注册事件,通过EventGrid推送欢迎新员工邮件,通知IT系统配备新电脑设备,发送财务部门新员工资料。
比如电商场景,仓库商品入库事件、门店顾客进店事件通过EventGrid实时流转到在线分析系统,让我们知道现在店内货物存量和顾客购买偏好,并推送相关广告给到门店导购员。顾客在线支付后,订单信息发送到EventGrid, 并触发第三方物流公司进行送货上门。顾客可以通过物流事件实时查看运送情况。
EventGrid是华为打造数字集成中心(Digital Integration Hub)的重要组成部分。它承接ROMA Connect集成平台的事件流转,通过消息和事件完成多云、跨云的应用集成以及SaaS伙伴应用服务的集成。其面向事件驱动的架构平台也是华为云成功的关键。
EventGrid官方事件源目前已经超过50个,包括智能边缘平台、数据接入服务、容器镜像服务等等,主要还在Beta版本阶段,服务于华为云内部。当然大家还可以创建自定义的事件源。
在华为云,通过采用EventMesh,我们可以实现可视化事件订阅,支持多个事件目标;此外,事件源支持事件过滤;另外,事件目标也支持事件转换。
展望EventMesh的未来,有两个重点,首先是EventMesh的工作流,我们希望:
其次是EventMesh的联邦治理:
??想了解更多关于开源的内容,请访问:??
??51CTO 开源基础软件社区??
??https://ost.51cto.com/#bkwz??
推荐阅读
- 「技术干货」工业触摸屏之驱动开发及异常分析(连载)
- 6.4-6.10博客精彩回顾
- 卷起来,突破35岁焦虑,动画演示CPU记录函数调用过程,进互联大厂如此简单
- 一文带你了解J.U.C的FutureTaskFork/Join框架和BlockingQueue
- Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学
- MYSQL group by 怎么能快一点,之别一根筋
- MySQL数据库(25)(外键 foreing key)
- MYSQL 8 统计信息持久化 与 null
- PostgreSQL Template