Skip to content

Latest commit

 

History

History
47 lines (28 loc) · 4.56 KB

新技术-消息队列.md

File metadata and controls

47 lines (28 loc) · 4.56 KB
authors company reviewers
阿里云

消息队列

消息服务作为应用的通信基础设施,是微服务架构应用的核心依赖,也是实践云原生的核心设计理念的关键技术,通过消息服务能够让用户很容易架构出分布式的、高性能的、弹性的、鲁棒的应用程序。消息服务在云原生的重要性也导致其极可能成为应用实践云原生的阻塞点,所以消息服务的云原生化是至关重要的。

云原生消息服务是云原生的通信基础设施,处于云原生全景图的应用定义和开发层,为微服务和EDA架构提供核心的解藕、异步和削峰的能力,同时在云原生其他层次领域,还发挥着数据通道、事件驱动以及集成与被集成等重要作用。

首先云原生消息服务是云原生的通信基础设施。2015年成立的CNCF基金会大范围推广了云原生的技术理念,并提供了一套完整的实践技术工具集,帮助开发者落地云原生理念。这套工具集收录于CNCF云原生全景图,其中消息中间件处于应用定义和开发层的Streaming和Messaging类目。

消息中间件在云原生的应用场景,主要是为微服务和EDA架构提供核心的解耦、异步和削峰的能力,在云原生全景图定义的其它层次领域,消息服务还发挥着数据通道、事件驱动、集成与被集成等重要作用。

另外云原生倡导面向性能设计,基于消息队列的异步调用能够显著降低前端业务的响应时间,提高吞吐量;基于消息队列还能实现削峰填谷,把慢服务分离到后置链路,提升整个业务链路的性能。

云原生消息服务演进方向

云原生时代对云服务有着更高的要求,传统的消息服务在云原生这个大背景下如何持续进化为云原生的消息服务,我们认为方向有这么几个:

  • 低成本

在过去,每家公司自建消息中间件集群,或是自研的、或是开源的,需要投入巨大的研发、运维成本。云原生时代的消息服务借助Serverless等弹性技术,无需预先Book服务器资源,无需容量规划,采取按量付费这种更经济的模式将大幅度降低成本。

  • 易用性

在云原生时代,消息服务第一步将进化成为一种所见即所得、开箱即用的服务,易用性极大的提高。接下来,消息服务将以网格的形式触达更复杂的部署环境,小到IoT设备,大到自建IDC,都能以跟公有云同样易用的方式接入消息服务,且能轻易地满足云边端一体化、跨IDC、跨云等互通需求,真正成为应用层的通信基础设施。

  • 多样性

云原生消息服务将致力于建设大而全的消息生态,来涵盖丰富的业务场景,提供各式各样的解决方案,从而满足不同用户的多样性需求。阿里云消息队列目前建设了多个子产品线来支撑丰富的业务需求,比如消息队列RocketMQ,Kafka,微消息队列等。

  • 标准化

容器镜像这项云原生的核心技术轻易地实现了不可变基础设施,不可变的镜像消除了IaaS层的差异,让云原生应用可以在不同的云厂商之间随意迁移。但实际上,很多云服务提供的接入形式并不是标准的,所以依赖这些非标准化云服务的应用形成了事实上的厂商锁定,这些应用在运行时是无法完成真正的按需迁移,所以只能称为某朵云上的原生应用,无法称为真正的云原生应用。因此,消息服务需要做到标准化,消除用户关于厂商锁定的担忧,目前阿里云消息队列采纳了很多社区标准,支持了多种开源的API协议,同时也在打造自己标准化接口。

云原生消息三化

  • 云原生消息Kubernetes化

Kubernetes项目当下绝对是大红大紫,在容器编排和应用托管领域绝对的事实标准,整个社区也是生机盎然。所以,必须将我们的消息服务升级为K8S环境开箱即用的服务。

  • 云原生消息Serverless化

Serverless最核心的理念是“按需”,云原生消息Serverless化主要是从两个维度落地按需的概念。一方面根据业务规模自动化扩缩容实例规格、队列数等逻辑资源;另一方面,根据服务端负载自动化扩缩容计算、存储等物理资源。

  • 云原生消息Mesh化

云原生消息Mesh化将消息富客户端能力下沉至Sidecar,将详细的服务发现、复杂均衡、流量监控等职责与业务逻辑隔离,在运行时完成透明组装,同时提供细粒度的消息灰度和治理能力