activemq jdbc mysql_ActiveMQ 消息持久化到数据库(Mysql、SQL Server、Oracle、DB2等)
发布日期:2021-06-24 15:42:23 浏览次数:3 分类:技术文章

本文共 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数据库

a923cd4cb6d1d75b295a2bc0f2478a37.png

根据自己的服务器设定相关的信息。

4.修改持久化设置:

1

2   

3

如图所示:配置jdbcPersistenceAdpater

fea80fd7bec22f9a3d4820abfaa92931.png

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的消息的信息

e34b2d908474fb0681311a33e273d3ba.png

6.当表已成功创建,再次修改持久化设置中的创建表设置(只要第一次创建表成功就行了):

createTablesOnStartup="false"

7.管理登录:

http://localhost:8161默认用户和密码均为admin

ee34175d23e730e564df8f4fea176542.png

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);

ff49cd2df7c419e8e61234cdbe6f95be.gif

a28a65bd30e74a4bcfaa718806d97781.png

转载地址:https://blog.csdn.net/weixin_33613462/article/details/113344740 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:适配没有覆盖pc端样式怎么办_真香,30天做一套wordpress主题(第8天):首页移动端适配...
下一篇:inplace mysql_MySQL8.0:In-place升级说明

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月08日 00时48分21秒