zoukankan      html  css  js  c++  java
  • java消息中间件的使用与简介

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

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

    消息中间件的好处

    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

  • 相关阅读:
    原生js ajax与jquery ajax的区别
    ajax的五大步骤
    js中setTimeout()时间参数设置为0的探讨
    js数组与字符串的相互转换方法
    javascript的三个组成部分
    linq 获取不重复数据,重复数据 var unique = arr.GroupBy(o => o).Where(g => g.Count() == 1) .Select(g => g.ElementAt(0));
    C# 随机 抽奖 50个随机码 不重复
    聚集索引和非聚集索引 聚集索引的叶节点就是最终的数据节点,而非聚集索引的叶节仍然是索引节点,但它有一个指向最终数据的指针。
    WPF ControlTemplate,DataTemplate
    C# 实现 奇数偶数排序,奇数在前,偶数在后
  • 原文地址:https://www.cnblogs.com/liuyangfirst/p/7813226.html
Copyright © 2011-2022 走看看