当前位置: 首页 > 科技观察

一文详解EventMesh落地华为云的探索及实践_0

时间:2023-03-15 23:11:26 科技观察

本文详细讲解EventMesh在华为云上的探索与实践2020年调查显示,到2024年,30%的电商企业将采用联合应用创新(PBC)。对于PBC,Gartner是这样定义的:PBC是多种数据模型、微服务、API应用、事件通道的集成,具有清晰的业务能力。它是业务驱动的,可以在没有外部依赖的情况下独立完成业务需求。多个PBC可以以积木的形式构建企业解决方案,呈现完整统一的用户体验。下图分别为单个PBC、组合PBC和多个组合PBC的示意图。PBC特别适合在电商业务场景中使用。它的价值包括:业务驱动的SaaS应用,真正解决每一个业务问题。不锁定单一供应商,采购和开发最好的应用服务。以低代码方式集成应用,快速上线,高效迭代。封装底层技术,屏蔽技术实现,更容易技术更新。PBC面临的挑战包括:应用集成缺乏统一标准。多样化的应用协议:HTTP、TCP、MQTT、AMQP等多样化的应用数据模型:OpenAPI、AsyncAPI。具体到我们今天的话题——ApacheEventMesh,它是一个云原生的事件驱动的分布式应用运行时,可以提供轻量级、多语言的客户端,支持多种通信协议,是一个可以连接其他后端服务的插件式架构.下图是EventMesh的整体架构,支持TCP、HTTP、gRPC等多种协议,支持Java、Python、C、Go等多语言客户端。纵向和横向,可以使用插件来连接各种开发者需要的后端服务。EventMesh是如何工作的?它是一个事件驱动的中间件,涉及两个角色:事件生产者和事件消费者。事件生产者向EventMesh发送事件,EventMesh存储事件。这个事件存储可以支持RocketMQ和Kafka。中间件的功能包括:基于线程池的多线程并发异步调用,增加并发请求量。根据事件生产和消费的性能需求,独立配置线程池参数。事件消费采用负载均衡和重试机制,保证事件消费成功。验证、过滤、路由和转换事件以支持高级事件处理功能。作为事件总线,它通过插件支持多种底层事件存储。EventMesh如何针对SaaS组合应用场景做的?SaaS组合应用最大的问题就是集成标准化的问题,而EventMesh自然可以解决这个问题。EventMesh通过gRPC支持多语言SDK,并集成了TCP和HTTP协议。gRPC是Google开源的基于HTTP/2的高性能RPC框架,支持Client和Server之间的双向异步通信。gRPC数据模型是统一的。Protobuf用于定义API接口数据模型,CloudEvents用于定义事件模型。在EventMesh的gRPC框架中,我们支持的gRPC事件使用场景包括:事件发送和批量事件发送、事件广播、事件请求和响应、事件订阅和推送。在gRPC的Protobuf事件模型中,每个事件都由一个SimpleMessage数据模型表示,事件的实体内容放在content字段中。CloudEvents是业界流行的事件模型。gRPC集成了EventMeshTCP和HTTP协议,使运行时和客户端更轻量级。从去年开始,华为云就进行了广泛的研究,希望在云端构建ServerlessEventBus。这个时候我们发现EventMesh的概念和华为云很像,能力很强。所以我们希望EventMesh能够不断壮大,能够落地华为云——这就是EventGrid诞生的背景,它是华为云中间件在云原生时代推出的新一代ServerlessEventBus。EventGrid使用EventMesh作为运行引擎,加入了华为需要的功能,包括可视化仪表盘、高级事件过滤、事件查询跟踪、死信存储等,这些都是我们自研的产品。整个EventGrid以事件驱动的方式连接华为云服务、微服务应用、SaaS应用。它对我们的价值在于,我们希望这项服务能够为华为云创造更多的应用场景,丰富华为云的开发者生态。EventGrid整个架构图和EventMesh非常相似:EventGrid在华为云有哪些场景?例如ERP场景,当有新员工入职时,HR系统生成新员工注册事件,通过EventGrid向新员工发送欢迎邮件,通知IT系统配备新电脑设备,以及发送财务部新员工信息。例如在电商场景中,仓库产品入库、门店顾客进店等事件通过EventGrid实时传输到线上分析系统,让我们了解当前门店商品库存情况和顾客购买情况偏好,并将相关广告推送给门店导购。客户在线支付后,订单信息发送到EventGrid,触发第三方物流公司送货上门。客户可以通过物流事件实时查看发货状态。EventGrid是华为数字集成中心的重要组成部分。承接ROMAConnect集成平台的事件流,通过消息和事件完成多云、跨云应用集成和SaaS伙伴应用服务集成。其事件驱动架构平台也是华为云成功的关键。EventGrid目前有50多个官方事件源,包括智能边缘平台、数据接入服务、容器镜像服务等,主要处于Beta版本阶段,服务于华为云内部。当然,您也可以创建自定义事件源。在华为云中,通过使用EventMesh,我们可以实现可视化的事件订阅,支持多个事件目标;另外,事件源支持事件过滤;此外,事件目标还支持事件转换。展望EventMesh的未来,有两个重点。首先是EventMesh的工作流程。我们希望:事件驱动架构的使用将使工作流安排简单明了。应用只需要订阅感兴趣的事件,将事件发送到对方的topic即可。适用于微服务之间的事务处理场景(Saga)。可以访问函数以创建函数工作流(ServerlessWorkflow)。二是EventMesh的联邦治理:打破数据孤岛,整合多云、跨地域的数据和事件。实现EventMesh之间的跨地域容灾和事件转发。通过实时分析和大数据采集,以及平台无关的连接和对开放标准的支持,实现跨地域、跨企业的事件联合治理。从数据无政府状态过渡到联合治理和成熟的企业数据策略。使用工具将策略有效地转化为代码,实现可视化、可观察性、可调整性。了解更多开源信息,请访问:51CTO开源基础软件社区https://ost.51cto.com。