PHP培训-高端面授PHP培训机构
云和教育:云和数据集团高端IT职业教育品牌 全国咨询热线:0371-67988003
课程 请选择课程
    校区 请选择校区
      • 华为
        授权培训中心
      • 腾讯云
        一级认证培训中心
      • 百度营销大学
        豫陕深授权运营中心
      • Oracle甲骨文
        OAEP中心
      • Microsoft Azure
        微软云合作伙伴
      • Unity公司
        战略合作伙伴
      • 普华基础软件
        战略合作伙伴
      • 新开普(股票代码300248)
        旗下丹诚开普投资
      • 中国互联网百强企业锐之旗
        旗下锐旗资本投资

      Java:消息中间件之activeMQ详解

      • 发布时间:
        2020-08-05
      • 版权所有:
        云和教育
      • 分享:

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

      主要特点:

      • 1、多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
      • 2、完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
      • 3、对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性
      • 4、通过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
      • 5、支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
      • 6、支持通过JDBC和journal提供高速的消息持久化
      • 7、从设计上保证了高性能的集群,客户端-服务器,点对点
      • 8、支持Ajax
      • 9、支持与Axis的整合
      • 10、可以很容易得调用内嵌JMS provider,进行测试

       

      ActiveMQ消息传递的两种类型:

      一种是点对点的,即一个生产者和一个消费者一一对应;

      另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。

      JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。

      •   1、 StreamMessage — Java原始值的数据流
      •   2、 MapMessage–一套名称-值对
      •   3、TextMessage–一个字符串对象
      •   4、ObjectMessage–一个序列化的 Java对象
      •   5、 BytesMessage–一个字节的数据流

        ActiveMQ的使用方法

        点对点:

      发布/订阅:

      在点对点或队列模型下,一个生产者向一个特定的队列发布消息,一个消费者从该队列中读取消息。这里,生产者知道消费者的队列,并直接将消息发送到消费者的队列。这种模式被概括为:只有一个消费者将获得消息。生产者不需要在接收者消费该消息期间处于运行状态,接收者也同样不需要在消息发送时处于运行状态。每一个成功处理的消息都由接收者签收。

      发布者/订阅者模型支持向一个特定的消息主题发布消息。0或多个订阅者可能对接收来自特定消息主题的消息感兴趣。在这种模型下,发布者和订阅者彼此不知道对方。这种模式好比是匿名公告板。这种模式被概括为:多个消费者可以获得消息.在发布者和订阅者之间存在时间依赖性。发布者需要建立一个订阅(subscription),以便客户能够购订阅。订阅者必须保持持续的活动状态以接收消息,除非订阅者建立了持久的订阅。在那种情况下,在订阅者未连接时发布的消息将在订阅者重新连接时重新发布。

       

      使用其他的工程来学习:

      工程需要添加jar包:

      Queue Producer

      生产者:生产消息,发送端。

      第一步:创建ConnectionFactory对象,需要指定服务端ip及端口号。

      第二步:使用ConnectionFactory对象创建一个Connection对象。

      第三步:开启连接,调用Connection对象的start方法。

      第四步:使用Connection对象创建一个Session对象。

      第五步:使用Session对象创建一个Destination对象(topic、queue),此处创建一个Queue对象。

      第六步:使用Session对象创建一个Producer对象。

      第七步:创建一个Message对象,创建一个TextMessage对象。

      第八步:使用Producer对象发送消息。

      第九步:关闭资源。

      Consumer

      消费者:接收消息。

      第一步:创建一个ConnectionFactory对象。

      第二步:从ConnectionFactory对象中获得一个Connection对象。

      第三步:开启连接。调用Connection对象的start方法。

      第四步:使用Connection对象创建一个Session对象。

      第五步:使用Session对象创建一个Destination对象。和发送端保持一致queue,并且队列的名称一致。

      第六步:使用Session对象创建一个Consumer对象。

      第七步:接收消息。

      第八步:打印消息。

      第九步:关闭资源

      文/云和数据JAVA技术专家

      2020年,云和数据全面升级课程,设有HTML5全栈精英班、全域电商精英班、PHP全栈web高薪班、Unity虚拟现实大师班、UI视觉交互精英班、Java大数据精英班、大数据人工智能专家班、华为认证课程……在云和,你可以学习一门自己感兴趣的技术作为踏入IT行业的敲门砖!要知道,兴趣和欲望才是驱动一个人学习和进步的原动力。努力,是你走向成功的唯一捷径。