对于开发者来说,中间件从来就不够性感,但却是不可或缺的存在。中间件为解决复杂问题而存在,并将可复用的通用性技术沉淀为可共享、高可用的支撑技术,是程序员手里的“研发利器”。
这把“利器”是根据时代需要不断演化的。从 80 年代诞生至今,中间件已经经历了四个大的阶段性发展,以消息队列为例:
- 第一阶段,国际商业软件巨头独领风骚,IBM、Oracle、Microsoft 纷纷推出了自己的 MQ,这类商业 MQ 通常为单机架构,一般采用高端硬件,软硬件一体机交付。
- 第二阶段,初代开源消息队列崛起,诞生了 JMS、AMQP 两大标准,ActiveMQ、RabbitMQ 逐渐流行。这类 MQ 主要面向小流量场景,横向扩展能力较弱。
- 第三阶段,PC 互联网、移动互联网爆发式流量压力下,催生了互联网消息中间件,开源典型代表有 Kafka、RocketMQ。这类 MQ 核心能力是全面采用分布式架构、具备很强的横向扩展能力。
- 第四阶段,云原生中间件时代。以云计算技术带来的应用开发架构变革为代表,中间件也必须作出一系列改变。云改变了中间件的游戏规则。
而在中间件资本市场也异常热闹。消息系统 Apache Kafka 背后的公司 Confluent 去年在纳斯达克上市,数据编排中间件 Alluxio、网关中间件 Apache APISIX 背后的开源商业化公司支流科技、基于 Apache Pulsar 的初创企业 StreamNative 等企业都获得了资本青睐。
当前,中间件的发展主要面临三个方面的挑战。
首先,随着云原生技术的普及,业务应用逐步进行容器化和微服务改造,如何适配云原生使用场景和支持大规模服务治理。其次,绝大部分中间件没有标准化,不仅给用户选型带来了很大的困扰,也增加了学习和使用成本。最后,中间件本身也面临云原生升级,服务端如何实现计算存储分离、对等部署和平行扩展。