本文共 1128 字,大约阅读时间需要 3 分钟。
ActiveMQ具体就不介绍了,直接介绍如何讲ActiveMQ持久化到本地数据库,以SQL Server 2008 R2为例
1.下载ActiveMQ后直接解压,我下载的是apache-activemq-5.14.5-bin.zip。
2.打开conf下的activemq.xml,我要配置的是将消息持久化到SQL Server 2008 R2
3.增加配置:
1 Mysql持久化bean:2
3
4
5
6
7
8
9
10
11 SQL Server持久化bean:12
13
14
15
17
18
19
20
21 Oracle持久化bean:22
23
24
25
26
27
28
29
30
31
32 DB2持久化bean:33
34
35
36
37
38
39
40
41
如图所示:配置MSSQL数据库
根据自己的服务器设定相关的信息。
4.修改持久化设置:
1
2
3
如图所示:配置jdbcPersistenceAdpater
5.最后,别忘了将MSSQL Server JDBC驱动sqljdbc4-4.0.jar(可以到微软官网下载https://msdn.microsoft.com/zh-cn/library/mt683464.aspx)拷贝到lib目录下,
好了,运行bin下的activemq.bat。
在数据库中已建立好ActiveMQ持久化需要的数据表。如图所示:如果配置成功,默认会创建三张表:
activemq_acks:ActiveMQ的签收信息。
activemq_lock:ActiveMQ的锁信息。
activemq_msgs:ActiveMQ的消息的信息
6.当表已成功创建,再次修改持久化设置中的创建表设置(只要第一次创建表成功就行了):
createTablesOnStartup="false"
7.管理登录:
http://localhost:8161默认用户和密码均为admin
OK配置完成!
PS:如果你发现ActiveMQ添加了持久化后,发了消息,为什么activemq_msgs表中没有记录任何数据,其实这个是需要我们自己在代码里控制的,需要设置MsgDeliveMode为Persistent,具体代码如下:
1 //PERSISTENT:保存到磁盘,consumer消费之后,message被删除。2 //NON_PERSISTENT:保存到内存,消费之后message被清除。3 //注意:堆积的消息太多可能导致内存溢出。
4 producer.Send(msg,MsgDeliveryMode.Persistent,level,TimeSpan.MinValue);
转载地址:https://blog.csdn.net/weixin_33613462/article/details/113344740 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!