消息队列的前世:
世界上第一个现代消息队列软件:Teknekron 的 The Information Bus(TIB) 由孟买的26岁工程师 发明.1994年由大型的
新闻机构路透社收购.
1993年左右IBM MQ在英国温切斯特诞生.
1997年 微软的消息队列(MSMQ)
2001年 Java Message Service (JMS)诞生 JMS试图通过提供公共的Java API的方式,隐藏单独的MQ产品供应商提供的实际接口,从而跨越了壁垒和解决了互通问题.从技术上讲 ,Java 应用只需提供针对JMS API编程,选择合适的MQ驱动即可.
消息队列改变了我们的系统
在没有引入消息队列前,我们在A系统中调用B系统接口,是时实并且耦合的。消息队列可以让两个系统的耦合关系变为松耦合,同步请求变成异步请求,可以缓解系统的压力。如下图:
图一当有多个系统相互交互时, 我们可以用消息队列作为中间平台,转发源系统的请求到目标系统。
Message消息系统结构如下图:
图二伟大的AMQP救世主
2004年 , JPMorgam Chase 开发 Advaced Message Queuing Protocol (AMQP ,高级消息队列协议).AMQP一开始就设计成为开放标准,以解决众多的消息队列需求和拓扑结构问题.
MQ消息中间件的特性:
1.系统的稳定性和健壮性Stability &Robustness
长期稳定运行
高并发下运行
2.消息的可靠性Reliability
发送的可靠性
接受的可靠性
事务性
本地事务
分布式事务
性能Performance
Broker性能
基于队列内存
基于内存+异步/同步持久化到磁盘
基于内存+顺序/随机读写磁盘
基于内存+持久化到关系数据库
Client性能
异步/同步发送,接受
确认机制
事务性会话
消息挤压
高可用性能
Cluster&Sharding
负载均衡LoadBalance
主从Master-Slave
分片Partition
Faillover 失效转移
手动
自动
Replication 复制
同步复制
异步复制
扩展性Scalability
支持多种协议和规范
支持多种接入和传输方式
支持自定义消息策略
支持自定义插件机制
可管理性Manageability
Broker和Queue的管理
Client和Connection管理
Cluster和Sharding管理
JMX或REST方式的管理API接口
网友评论