解法
到2003年,一家银行运行着几十个彼此无法通信的消息系统,每个中间件供应商的代理都使用私有语言。摩根大通的约翰·奥哈拉启动了AMQP项目,使来自不同供应商的消息软件在线路层面能够互通。
初步设计在2004年到2006年间与iMatix合作完成,随后向包括思科、红帽等公司在内的工作组开放。AMQP定义了消息格式和协议本身的行为,不像API级标准那样让代理无法交换消息。
开源实现随后出现——Apache Qpid和RabbitMQ——2011年,这项工作移交给OASIS,后者于2012年10月批准AMQP 1.0为标准;2014年4月,ISO/IEC也予以批准。由银行启动的标准成为企业消息传递的开放骨干。
取得了什么结果
一个不归任何供应商所有的线路协议,使各代理之间能够互通
为什么有效
线路级规范使不同供应商的代理能够互通
银行推动的标准消除了供应商锁定
像RabbitMQ这样的开源实现推动了行业普及
OASIS和ISO的认可让企业放心采用
可以借鉴什么
如果你因协议而被供应商锁定,那就自己编写协议并免费提供——标准将成为竞争市场。
后续
AMQP 1.0已被RabbitMQ、Apache Qpid、微软Azure服务总线等主要代理实现,并且仍是企业消息传递的核心标准。MQTT后来在轻量物联网领域胜出,但AMQP仍掌握着企业中间件市场。
从这里,追溯依据
参考来源
- Advanced Message Queuing Protocol Wikipedia · en.wikipedia.org
- About AMQP AMQP · amqp.org