java消息中间件简介

java消息中间件简介_第1张图片

 

一、为什么要使用消息中间件

 

       消息中间件就是可以省去繁琐的步骤,直达目的,怎么讲呢,就是比如你想很多人,知道你的动态,而知道的人可能手机没电,可能手机信号不好,可能手机不在服务区,或者看的人比较忙,看的时间不固定,这样的时候,你发送的消息怎么会让其看到呢,就是建立一个微信公众号,可以满足用户随时看到你想让其看到的消息,这就是中间件的一种应用方式,生活中老师讲课的黑板,家中的电视机都是中间件的一种体现方式。

 

消息中间件的好处

 

1、解耦

 

2、异步

 

3、横向扩展 :就是可以通过一个中间件进行一个功能多次的操作

 

4、安全可靠 消息中间件可以把消息保存

 

5、顺序保存,比如kafka

 

二、什么是中间件

 

      非底层操作系统软件,非业务应用软件,不是给最终用户使用,不能直接给用户带来价值的软件统称为中间件。

 

三、什么是消息中间件

 

      关注于数据的发送和接受,利用高效可靠的异步消息传递机制集成分布式系统。

 

四、什么是JMS

 

       Java消息服务(Java Message Service)即JMS,是一个Java平台中关于面向消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

 

五、什么是AMQP

 

        AMQP(advanced message queuing protocol)是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制.

 

 

 

常见消息中间件对比

 

1、ActiveMQ

 

        ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线. ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位.

 

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)虚拟主题、组合目的、镜像队列

 

2、RabbitMQ

 

          RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

 

 RabbitMQ特性    

 

         (1)支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript等

 

         (2)AMQP的完整实现(vhost、Exchange、Binding、Routing Key 等)

 

         (3)事务支持/发布确认

 

         (4)消息持久化

 

3、Kafka

 

        Kafka是一种高吞吐量的分布式发布订阅消息系统,是一个分布式的、分区的、可靠的分布式日志存储服务。它通过一种独一无二的设计提供了一个消息系统的功能。(不是个严格的中间件,主要是用于日志转存的)

 

 Kafka特性:

 

    (1)通过O(1) 的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

 

    (2)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。

 

    (3)Partition、Consumer Group

你可能感兴趣的:(java)