SpringBoot整合ActiveMQ

一. queue队列

编写消费者工程activemq-consumer

  1. new ActiveMQ工程
    在这里插入图片描述
  2. pom文件中MQ的坐标
<dependency>   
	<groupId>org.springframework.boot</groupId>   						
	<artifactId>spring-boot-starter-activemq</artifactId>
</dependency> 
  1. 配置application.properties文件
server.port=8086
#配置ActiveMQ的broker-url
spring.activemq.broker-url=tcp://192.168.46.128:61616
spring.activemq.user=admin
spring.activemq.password=admin
#spring.jms.pub-sub-domain=false代表指定是Queue,如果是true代表的是Topic
#spring.jms.pub-sub-domain=false
songxinzhi.activemq.myQueueName=my-queue
spring.jms.pub-sub-domain=true
songxinzhi.activemq.topicQueue=topic-queue
  1. 编写消费者SpringBootMQConsumer
    在这里插入图片描述
    springboot启动消费者,注意启动类中要加入@EnableJms注解
    在这里插入图片描述
    动之后观察MQ控制台
    在这里插入图片描述
    编写消费者工程activemq-provider
  2. new ActiveMQ工程,同上pom文件以及注解
server.port=8082
#配置ActiveMQ的broker-url
#spring.activemq.broker-url=tcp://192.168.46.128:61616
spring.activemq.broker-url=nio://192.168.46.128:5671
spring.activemq.user=admin
spring.activemq.password=admin
#spring.jms.pub-sub-domain=false代表指定是Queue,如果是true代表的是Topic
#spring.jms.pub-sub-domain=false
songxinzhi.activemq.myQueueName=my-queue
spring.jms.pub-sub-domain=true
songxinzhi.activemq.topicQueue=topic-queue
  1. 编写消费者SpringBootMQProvider
    在这里插入图片描述
    启动生产者
    在这里插入图片描述
    生产者每隔5秒在控制台发送send message:songxinzhi, 消费者控制台打印I received Message:songxinzhi
    在这里插入图片描述
  2. MQ控制台消息
    在这里插入图片描述

二. Topic 主题

  1. 配置文件变更
    在这里插入图片描述

  2. 消费者代码
    在这里插入图片描述

  3. 生产者代码
    在这里插入图片描述
    在这里插入图片描述
    测试,先启动两个消费者,然后启动生产者,可以看出生产者发送的消息,每个消费者都可以收到相同的
    在这里插入图片描述
    生产者打印日志
    在这里插入图片描述
    在这里插入图片描述

三.ActiveMQ 支持的传输协议

在activeMQ安装目录的conf/activemq.xml中的transportConnectors标签之内
在这里插入图片描述
ActiveMQ支持的client-broker通讯协议有:TCP、NIO、UDP、SSL、Http(s)、VM。
Transmission Control Protocol (TCP)
1:这是默认的Broker配置,TCP的Client监听端口是61616。
2:在网络传输数据前,必须要序列化数据,消息是通过一个叫wire protocol的来序列化成字节流。默认情况下,ActiveMQ把wire protocol叫做OpenWire,它的目的是促使网络上的效率和数据快速交互。
3:TCP连接的URI形式:tcp://hostname:port?key=value&key=value,加粗部分是必须的
4:TCP传输的优点:(1)TCP协议传输可靠性高,稳定性强(2)高效性:字节流方式传递,效率很高(3)有效性、可用性:应用广泛,支持任何平台5:所有关于Transport协议的可配置参数,可以参见:http://activemq.apache.org/configuring-version-5-transports.html

New I/O API Protocol(NIO)
1:NIO协议和TCP协议类似,但NIO更侧重于底层的访问操作。它允许开发人员对同一资源可有更多的client调用和服务端有更多的负载。
2:适合使用NIO协议的场景:
(1)可能有大量的Client去链接到Broker上一般情况下,大量的Client去链接Broker是被操作系统的线程数所限制的。因此,NIO的实现比TCP需要更少的线程去运行,所以建议使用NIO协议
(2)可能对于Broker有一个很迟钝的网络传输NIO比TCP提供更好的性能
3:NIO连接的URI形式:nio://hostname:port?key=value
增强型的NIO
为了解决端口既支持NIO网络IO模型,又让它支持多个协议增强型的NIO为了解决端口既支持NIO网络IO模型,又让它支持多个协议,引入Enabling AUTO over NIO,自动适配TCP/NIO,修改activemq.xml配置,引入Enabling AUTO over NIO,自动适配TCP/NIO,修改activemq.xml配置

<transportConnector name="auto+nio" uri="auto+nio://localhost:5671"/>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值