更多精彩内容,欢迎观看:
《云计算加速开源创新》——云原生背景下消息领域的一次重新定义(上):https://developer.aliyun.com/article/1224005?spm=a2c6h.13148508.setting.16.68ac4f0e3g0pvX
今天我们以RocketMQ5.0核心能力为基础,支撑了阿里云RocketMQ、MNS、RabbitMQ等多款云消息产品,帮助客户建设现代化应用架构。
在云原生时代,事件驱动架构应用范围扩大,成为Gartner年度十大技术趋势。在新型的数字化商业解决方案中,会有60%采纳EDA架构。
事件驱动是个比较经典的概念。早在几十年前,无论是操作系统内核的设计、还是客户端编程框架都大量采用了事件驱动技术。EDA的价值是为软件设计提供“解耦”的能力,“解耦”是软件实现快速迭代的核心。在全行业数字化转型、全面上云的时代,事件驱动架构的价值将被全面释放。
• 事件驱动释放数字化转型的红利
现实世界中的企业业务可以抽象为一个个的事件触发、事件响应的流程,比如在A在超市购买了商品,会产生用户A购买某件商品的事件,超市响应这个事件,可能触发商品补货Action;B在ATM存款完成,会产生A存款XX元事件,银行响应这个事件,可能会触发理财产品推荐Action。
用事件来思考业务,进行业务建模,用事件驱动技术进行业务数字化建设,能够为企业建设高度可扩展、高度敏捷的数字化系统。比如在超市的案例中,购买商品的事件未来能扩展更多的Action,比如建设CRM系统、商品货架摆放优化、优惠券发放等等,EDA的数字化系统将持续创造业务增量。
另一方面,现实世界中的商机往往转瞬即逝,事件驱动的业务系统,天然就是实时触发的,快速响应业务,例如在电商网站中,通过实时分析用户在网站的点击事件、购物车事件,实时分析用户喜好和需求,精准实时推荐,进一步提高购物成功率和成交量。
• 事件驱动建设数字化商业生态
当全行业大规模数字化转型后,跨业务、跨组织的业务合作将从线下搬到线上,在数字经济时代,数字化商业生态规模将持续扩大。在过去,跨组织业务协同更多的是通过同步API调用的方式进行,现在随着规模的扩大、参与方的增多、业务迭代速度的加快,同步API的调用方式已经远远不能满足数字化商业生态的发展诉求。
比较显著的问题包括:跨组织的业务因耦合无法独立演进迭代、可用性下降、性能无法满足2C的规模等等。而EDA天然具备的异步、解耦的特性可以解决这一系列的问题,跨组织业务协同更需要彻底解耦。比如阿里聚石塔业务就是事件驱动的模式,聚石塔实时发布交易事件,合作伙伴包括ISV、软件服务商、品牌商家订阅消费交易事件,建设个性化的CRM、商家运营、后台管理系统等,形成一个庞大的电子商务数字化生态;钉钉则是启动“云钉一体”的战略,通过钉钉连接器+EventBridge开放全面的钉钉事件源,以事件集成的方式和业界合作伙伴共建数字化办公生态。事件驱动架构将为跨组织的商业新生态打破业务孤岛、数据孤岛,行业级的事件规范CloudEvent也已经形成,未来“连接”将创造新价值。
• 事件驱动加速云原生技术的落地
作为云原生代表技术,Serverless架构范式本身也是事件驱动的。现在主要的serverless产品形态,无论是阿里云的函数计算、还是AWS的Lambda,它们的主要触发源都是各种形态的事件,比如云产品事件,OSS文件上传,触发用户基于函数进行文件加工处理计算;用户业务事件,EventBroker触发函数运行消费逻辑;云产品运维事件,用户通过响应事件,在云平台的基础上扩展自己的自动化运维体系。事件驱动架构的大规模使用,能够帮助数字化企业释放云计算Serverless的技术红利。
随着EDA架构被大规模跨组织的落地,CNCF推出了CloudEvent规范,基于统一的规范,跨系统、跨组织的数字化协同有了共同的“语言”,能够实现更高效的系统集成,沉淀面向事件的软件基础设施。面向EDA的趋势,RocketMQ5.0发布了全新的产品形态,叫eventbridge。它的领域模型以事件为中心的,支持cloudevent规范,提供低代码的事件编排、过滤、路由能力,具备灵活的事件集成能力。
今天我们以RocketMQ5.0核心能力为基础,支撑了阿里云EventBridge产品,助力云客户实现事件驱动、事件集成的商业生态。
五、 云原生时代的Apache RocketMQ技术架构演进
现在我们从RocketMQ自身的技术架构角度来看云原生的演进,这是RocketMQ的云原生架构全景图,从客户端、到服务端都进行了全方位的改造,更高弹性、可用性,更低成本。
• 客户端采用轻量SDK设计理念,将原来富客户端的逻辑下沉到Broker,满足现代化应用轻量化、Serverless化的趋势。
• Broker彻底进行弹性架构改造,分离RocketMQ Proxy和Store层。其中Proxy是完全无状态的计算节点,专注多协议、多领域场景覆盖,可以面向不同工作负载独立弹性,如物联网、微服务、大数据不同场景有不同的资源诉求。同时对RocketMQ的Topic资源也进行了三层解耦,面向消息的Topic、面向流的Topic逻辑分片、面向底层存储的Topic物理分片,每一层都可以独立弹性。
Store层则专注消息的高可用存储,包括副本复制、主备切换和云存储集成。其中新的HA技术引入Leaderless的架构,Store节点身份对等,资源利用率全面提升;保持极简架构,内置分布式一致性组件,无需依赖外部zookeeper等分布式系统;多副本策略可定制,面向不同场景,用户可以在可用性+可靠性+成本进行灵活组合;基于全新的高可用架构,用户可以面向云的多可用区、多region组建Geo全局高可用能力。
在云存储集成方面,云服务形态的RocketMQ 5.0可基于云盘、对象存储的打造多级存储架构,提供低成本的无限存储能力,冷热数据分离,为用户提供一致的冷读SLA。
六、 Apache RocketMQ 5.0业务全景
经历7年大规模云计算实践,RocketMQ迈进5.0的时代,从原来的互联网业务消息中间件,扩展到“消息、事件、流”超融合处理平台,解锁更全面的能力。
• 在消息领域,全面拥抱云原生技术,更好的弹性架构和高可用能力。
• 在事件领域,支持CloudEvent规范,以事件为中心的产品新界面,助力客户建设跨业务、跨组织的数字化商业生态。
• 在流领域,流存储增强批量特性,大幅度提高数据吞吐量;新增逻辑队列特性,在流场景也具备无缝伸缩能力;新增流数据库RSQLDB,提供实时事件流处理、流分析能力。
• 在物联网领域,RMQ基于端云一体化架构实现了完整的物联网消息队列的能力,从原来的连接应用扩展到连接物联网设备。同时RocketMQ 5.0 也继续保持极简架构的原则,能够以最低的资源消耗、运维成本搭建服务,适合边缘计算。
如下图所示,物联网设备持续产生数据,边缘的RocketMQ直接进行实时数据分析计算,能够快速响应用户。同时通过实时ETL、实时决策产生的高价值事件或者数据,也可以传输到云端,通过RocketMQ的Eventing的能力,链接到云平台,充分利用公共云的一站式平台技术进一步放大数据价值。现在RocketMQ已经具备连接一切、随处运行的能力,提供“云、边、端”一体化的实时数据解决方案。
七、 Apache RocketMQ生态与社区建设
一个人可以走得很快,但一群人可以走得更远,接下来我们将继续加大对RocketMQ 5.0的生态建设投入。
一方面是应用架构生态的建设,这里既有经典的开源项目、规范的集成,比如JMS、AMQP等。另一方面,也会有云原生技术生态的集成,比如CloudEvents、Dapr、Envoy。同时RocketMQ也会进一步发力数据架构生态,全链路集成大数据的摄入、数据存储、数据处理、数据分析组件,从离线大数据到实时大数据。
RocketMQ通过联动社区生态项目,为客户交付完整的业务价值链条,实现多场景的业务覆盖,如事件驱动架构解决方案、实时数据解决方案。
在全球700+ Contributors的共同建设下,RocketMQ产品竞争力持续提升,获得更多用户认可,近期荣获多个奖项,如中国开源云联盟优秀基础软件、进入科创中国“开源创新榜”、Apache中国开源项目领导者象限。
随着潜在用户数的增大,RocketMQ的商业价值也进一步放大,目前已经有10+云厂商提供Apache RocketMQ的商业服务,真正无厂商锁定。RocketMQ已然成为头部互联网、金融、云厂商的共同选择,是消息领域的事实标准。
未来RocketMQ将继续围绕消息、事件、流一体化的云原生MQ持续演进,这是近期RocketMQ规划的关键特性,欢迎社区开发者参与共建。