JDBC消息存储需要几步:
1)MQ+Mysql:需要安装对应服务,activemq,mysql;
2)在activeMQ中的lib文件夹下,添加数据库连接驱动jar包

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配置保持一致即可;

