一、简介
7月16日,有幸参加了ArchSummit2022全球建筑师峰会(深圳站)。我只专注于“云原生前沿技术应用”这个话题,一天只呆一个会场。老师们在这个话题下的讲课,给我印象最深的是ApacheEventMesh的PPMC老师薛伟明分享的《ApacheEventMesh分布式事件驱动多运行时》。
在听薛伟明老师的分享之前,我在想是否有一个组件可以解耦业务和基础架构(比如存储、缓存、注册中心、消息引擎等)。两个例子:
与SpringCloudStream一样,它解耦了上游和下游消息引擎。SpringCloudStream用于在SpringCloud系统中构建高度可扩展的事件驱动微服务。目的是简化消息在SpringCloud中的应用。在程序中开发,但这仅限于消息引擎的解耦。
在云原生领域,ServiceMesh更多的是集成了RPC的服务,被同步调用,可能有一定的耦合度。
虽然上面也做的不错,但是在各个方面还是有一些局限的。
听了薛伟明老师对EventMesh的分享,我发现EventMesh这个事件驱动的架构,很香,和我的想法不谋而合,只不过EventMesh功能更全,耦合最小化,可以很好的扩展和适应不同类型的服务组件。,EventMesh将成为后面的主流架构趋势。
2.什么是EventMesh
可能有些朋友不知道这个EventMesh是什么。笔者觉得有必要先给大家一个定义,这样大家才能先知道这个EventMesh是什么。
ApacheEventMesh是一个动态的云原生事件驱动架构基础架构,用于解耦应用程序和后端中间件层。它支持广泛的用例,包括复杂的混合云、使用不同技术堆栈的分布式架构。
在上图中,我们可以看到EventMesh位于连接云应用和基础设施的中间层。EventMesh与ServiceMesh定位相同,支持云原生部署方式,可以运行在Kubernetes上。.
3.EventMesh架构
EventMesh本身提供轻量级客户端、标准化接口和协议。上面我们提到EventMesh的定位是基于应用和基础设施的中间层。应用程序可以通过轻量级客户端访问EventMesh,从而实现强绑定与基础设施的解耦。
上图左边也是我们EventMesh的内部架构。EventMesh提供了不同类型的API,包括Java、Go、C、Python等。左边中间部分其实是EventMesh的运行状态。它支持集群Gateway的部署,也可以支持容器化Sidecar的部署。
EventMesh主要分为以下几个部分:协议、可观察性、处理器、编排和存储。不同的部分是插件处理,比如协议部分支持HTTP、TCP、gRPC、MQTT,内部通信会转换成CloudEvents,相当于适配器的功能。
4.我的想法
针对微服务的大规模部署(微服务数量>1000),内部服务异构程度高(交互协议/开发语言类型>5),集成的微服务松耦合异步。使用EventMesh是合适的。但是,大多数开发者所面临的微服务和内部架构的异构复杂度可能没有那么高,也不需要异步对应的特性。在这种情况下,您需要根据自己的业务选择合适的技术。堆栈和架构模型。
EventMesh本身支持集群Gateway的部署,也可以支持容器化Sidecar的部署。
EventMesh打破数据孤岛,支持企业全连接、数字化和多云协作。
像这种开源软件,虽然最近国内的氛围和发展越来越好,但是很多创新的开源产品都是国外开发的。银行、腾讯、字节跳动、京东、阿里、百度等国内一线厂商参与研发。希望能有更多以国内企业为主导的创新开源软件。EventMesh是一种事件驱动的架构。,未来可期。
评论前必须登录!
注册