当前位置: 首页 > Linux

阿里巴巴冯佳:分布式消息系统的现状、挑战与未来

时间:2023-04-06 23:50:45 Linux

本文整理自冯佳在开发者生态峰会上的分享。以及Messaging生态所面临的挑战;结合阿里巴巴自身的开源实践,为如何应对上述挑战提供参考答案;OpenMessaging生态现状及未来发展方向。冯佳:ApacheRocketMQ创始人,LinuxOpenMessaging创始人,阿里消息技术总监。消息系统的行业挑战首先是开源软件对传统闭源软件的冲击。早期的消息系统是闭源的,但是随着开源生态的发展,越来越多的开源消息系统出现,让用户在消息系统的选择上有了更多的选择。这对制造商来说是一个非常大的挑战。其次,互通的成本越来越高。消息系统面临越来越多的上下游生态。比如部门之间选择不同的技术栈。这个部门选择这个消息,那个部门产生那个消息。两者流通时,必然会带来互操作性问题。因此,这种高互操作性的要求就放在了消息系统上。第三,消息本质上是异构的,它的诞生就是为了解决数据传输的问题。虽然每个部门都有自己的技术栈,但它产生不同的开发语言。每种语言都有自己的技术领域,一种语言无法应对所有的需求场景。在这样的场景下,如果使用Messaging,希望消息系统能够与不同的语言进行通信。语言类图书馆。第四,券商和电商领域需要微秒级的延迟,而微秒级的延迟并没有实现软硬件的良好配合,所以第四个挑战是由于嵌入式和新硬件设备的能力较弱。第五,物联网有很多端点,端到端和后端之间有数据采集和数据上报。大规模部署能力也是对所有消息系统的挑战。阿里巴巴如何应对这些挑战?我们希望在开源框架的基础上,针对某些垂直领域或者高性能低延迟的场景推出企业版和云版。云版侧重于部署流畅性,减少部署时间,提高可扩展性,甚至加速云基础设施的迁移。因为很多MMQ厂商已经做了商业场景,我们做了企业版,在FQ领域开发了IOT网关,在金融领域应用了分布式消息。这样用户就可以使用了。在云上,我们有更强的底线覆盖能力。当你使用云上的版本后,你会发现成本降低了,部署速度也更快了。企业只需关注业务,无需关注底层基础设施变化带来的影响。其次,互操作性是任何技术领域都需要面对的问题。在消息领域,业界已经有3个著名的消息标准,但都不能很好地解决互操作性问题:JMS是Java平台中面向消息的中间件的API;具有消费特性的通信协议;AMQP主要用于电信和金融行业。在评估了所有可用的备选方案后,我们决定选择创建一个新的面向CloudNative的消息分发标准OpenMessaging,它为供应商中立、语言独立的大数据等领域提供行业指导。第三,我们开放了OpenMessaging核心,通过sidecars提供了多语言需求的解决方案。据此,我们只需要在Java的基础上构建C语言核心,然后将Java和C语言核心开放出来,在其之上构建Python、Go等语言sdk,实现共建与社区的生态。第四,在券商和电商领域,我们提出一个解决方案:大家都知道NVMI存储在慢慢的被用来替代之前的SSD硬盘。如果我们使用这种硬件设备,我们就可以绕过内核。通过对比发现,MQ的硬件设备在硬件层通过了SSD存储层,延迟会大大降低。所有的延迟都集中在APP层或者硬件驱动层。这样就可以保证应用在100毫秒甚至几十微秒的情况下实现极小的延迟。传统软件要适配这种硬件是很有挑战性的,因为这种硬件不兼容传统软件的API。第五,对于大规模部署,存储计算分离和事件驱动架构是很好的解决方案。比如在物联网领域,可以将存储端和计算端分开,大大提高了端的计算能力。OpenMessaging未来的发展方向现在,我们看到基础设施非常开放,就像道路和桥梁一样,有很多操作系统,OpenOffice办公软件等很多技术都转向了开放。我们希望使OpenMessaging成为一个非常开放的数据层。好基石。如图所示:在数据维度上,我们可以覆盖日志数据和业务数据;在行业维度,可以通过OpenMessaging拓展游戏行业、电商行业的交易数据。对于物联网来说,数据可以通过OpenMessaging的上下游以标准化的方式串起来。包括ApacheKafka、ApacheRocketMQ、RabbitMQ和ApacheActiveMQ在内的制造商可以基于此标准构建下一代消息传递解决方案。现在,OpenMessaging有四个工作组:第一个工作组主要关注span的制定;第二个工作组是解决API;第三工作组希望提供基准API;第四个工作组是解决存储的instrumentation,因为未来的架构肯定是存储和计算分离的,肯定会面临大量的存储。经过一年多的发展,整个OpenMessaging技术开发委员会共有7名成员。他们来自电子商务、广告搜索、流计算、数据集成等4家公司。每个人的共同特征是互操作性。除了掌握产品和技术方向的技术委员会外,还有来自6家不同公司的11个咨询委员会。这11位同学会帮助我们在建设和产品开发规划上提出一些建议。此外,还有近20位来自社区的贡献者,以确保OpenMessaging朝着多元化、无厂商锁定的健康方向发展。线下分享预告:王强(辽天)受邀参加10月18-20日Qcon·上海站,分享了《Apache RocketMQ事务消息演进之路》主题。欢迎来到现场学习Messaging是如何解决分布式事务问题的。本文作者:中间件哥阅读原文本文为云栖社区原创内容,未经允许不得转载。

猜你喜欢