activeMQ-14持久化机制(jdbc消息存储)

JDBC消息存储需要几步:
1)MQ+Mysql:需要安装对应服务,activemq,mysql;

2)在activeMQ中的lib文件夹下,添加数据库连接驱动jar包

3)添加jdbcPersistenceAdapter配置,如下图所示:
jdbc配置.png

4)配置上面所写的dataSource对应id的数据源,如:

datasource.png

当然对于配置bean的位置也有要求,在activemq.xml中,配置在如下标注标签之间位置:
place.png

5)创仓sql和建表:在步骤3中可以看到,对于创建表结构的参数配置项;启动服务之后就会发现,自动创建3个表:activemq_msgs、activemq_acks、activemq_lock
下面说明每一个表的结构:

table1.png

table2.png

table3.png

6)代码中验证:此时一定要开启消息持久化;结论如下:
【queue】:在没有消费者消费的情况下会将消息保存到activemq_msgs表中,只要有任何一个消费者消费过了,消费之后这些消息记录会立即删除。
【topic】:一般先启动消费者,在生产的情况下,会将消费者订阅情况保存到activemq_acks中,发布的消息会在activemq_msgs中
7)相关实现过程中遇到的坑:
keng.png

  • 下面说明下,实际生产环境基本上会使用加强版jdbc持久化机制(journal+jdbc)
    1)journal特点以及实现原理:


    journal.png

    2)关于journal+jdbc的相关配置:


    journal2.png

    其余配置和jdbc配置保持一致即可;

你可能感兴趣的:(activeMQ-14持久化机制(jdbc消息存储))