消息中间件介绍:
专注于数据的发布和接收、利用高效可靠的异步消息传递机制集成分布式系统
协议规范:
JMS介绍:
Java消息服务(Java Message Server) 及JMS,是一个Java平台中关于面向消息中间件的API,用于在两个应用程序之间或分布式系统中发送消息,进行异步通信。(总结,就是Java中关于消息中间件的一个API规范)。
AMQP介绍:
AMQP(advanced message queuing protocol)是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。(总结,一个应用层的数据传输协议)。
消息中间件:
ActiveMQ介绍:
ActiveMQ是Apache出品,流行的、能力强劲的开源消息总线。ActiveMQ是一个完全支持的JMS1.1和J2EE1.4 规范的 JMS Provider 实现
ActiveMQ特性:
1、支持多语言(Java、C、C++、C#、Ruby、Perl、Python、PHP等)
2、支持多总应用协议(OpenWire、Stomp、REST、WS Notification、XMPP、AMQP)
3、完全支持JMS1.1和J2EE1.4规范(持久化、XA消息、事务)
4、虚拟主题、组合目的、镜像队列
RabbitMQ介绍:
RabbitMQ是一个开源的AMQP实现,服务器段用Erlang语言编写。用户在分布式系统中存储转发消息,在易用性、扩展性、高可用性方面表现不俗。
RabbitMQ特性:
1、支持多种客户端(Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript等)
2、AMQP的完成实现(vhost、Exchange、Binding、Routing Key等)
3、事务支持/发布确认
4、消息持久化
Kafka介绍:
Kafka是一种高吞吐量的分布式发布订阅消息系统,是一个分布式的、分区的、可靠的分布式日志存储服务。它通过一种独一无二的设计提供了一个消息系统的功能(不是一个严格的消息中间件,主要用来的日志存储的,因此对消息的顺序要求十分严格)
Kafka特性:
1、通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性
2、高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息
3、Partition,Consumer Group
(注:来自于慕课网上的java消息中间件课程)