ActiveMQ高级

本文介绍了ActiveMQ的持久化机制,包括配置数据库、激活jdbc持久化,并详细讲解了启动生产者和消费者的步骤。此外,还探讨了JMS可靠消息的实现,包括带事务的session和手动签收。最后,展示了如何在SpringBoot中整合ActiveMQ,实现生产者和消费者的配置与消息发送。
摘要由CSDN通过智能技术生成

设置持久化
默认不持久化(默认是1),正常的开发模式当中,是需要持久化的

	DeliveryMode.NON_PERSISTENT  =  1    不开启持久化
	
	DeliveryMode.PERSISTENT =  2		开启持久化			
	
	producer.setDeliveryMode(2);开启持久化

01.ActiveMQ持久化机制

步骤一:创建一个数据库

步骤二:配置activemq.xml配置文件

在persistenceAdapter加入如下配置

jdbcPersistenceAdapter :采用jdbc的持久化方案

dataSource:代表数据源

createTablesOnStartup:启动是否创建表

<!--createTablesOnStartup    启动是否创建表  第一次为true 后续为false-->
<!--在你第一次创建表的时候createTablesOnStartup改为true,存入了10条数据,在第二次运行的时候还是ture的话,从会重新创建表,那10条数据就不见了,在第二次运行的时候要把createTablesOnStartup改为false-->
<jdbcPersistenceAdapter dataSource="#activemq-db" createTablesOnStartup="true" />

在这里插入图片描述
步骤三:配置数据源

	<bean id="activemq-db" class="org.apache.commons.dbcp.BasicDataSource">
	  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
	  <property name="url" value="jdbc:mysql://127.0.0.1:3306/activemq"/>
	  <property name="username" value="root"/>
	  <property name="password" value="root"/>
	  <property name="maxActive" value="200"/> 
	  <property name="poolPreparedStatements" value="true"/>
	</bean>

在这里插入图片描述
步骤四:将数据库连接Jar放到activemq解压的lib文件夹下

在这里插入图片描述
步骤四:重新启动,重启后刷新数据库,会生成三张表
在这里插入图片描述
activemq_msgs用于存储消息,Queue和Topic都存储在这个表中:

ID:自增的数据库主键

CONTAINER:消息的Destination

MSGID_PROD:消息发送者客户端的主键

MSG_SEQ:是发送消息的顺序,MSGID_PROD+MSG_SEQ可以组成JMS的MessageID

EXPIRATION:消息的过期时间,存储的是从1970-01-01到现在的毫秒数

MSG:消息本体的Java序列化对象的二进制数据

PRIORITY:优先级,从0-9,数值越大优先级越高

activemq_acks用于存储订阅关系。如果是持久化Topic,订阅者和服务器的订阅关系在这个表保存:

主要的数据库字段如下:

CONTAINER:消息的Destination

SUB_DEST:如果是使用Static集群,这个字段会有集群其他系统的信息

CLIENT_ID:每个订阅者都必须有一个唯一的客户端ID用以区分

SUB_NAME:订阅者名称

SELECTOR:选择器,可以选择只消费满足条件的消息。条件可以用自定义属性实现,可支持多属性AND和OR操作

LAST_ACKED_ID:记录消费过的消息的ID。

表activemq_lock在集群环境中才有用,只有一个Broker可以获得消息&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值