59519751 发表于 2018-9-28 12:34:09

ActiveMQ使用MySQL进行消息持久化

  使用MySQL进行ActiveMQ的消息持久化,并设置主从模式
  1、MySQL数据库的binlog日志模式要设置为 mixed 模式
  2、设置使用数据库锁 useDatabaseLock="true" ,如果不设置,在主从模式下会报主键重复的异常。
  


[*]
[*]   
[*]
  

  3、使用数据库锁的时候,master启动后,slave由于数据库锁的原因,启动时处于等待状态,这时slave无法提供服务,当master当机后,数据库锁释放,slave获得数据库锁,可以提供服务。
  4、虽然设置的主从模式,但当master当机时,接收者会有数据丢失问题,而且问题比较严重。考虑可能是由于没有 Journal 的原因,但不知道为什么ActiveMQ 5.0以后版本不支持 journaledJDBC ,也可能是没有找到正确的设置方法。(原因是在消息发送端设置了异步发送,导致发送和接收的消息数不一致,修改为同步发送后,消息不丢失,发送和接收的消息数一致)
  ActiveMQ使用MySQL进行持久化,并配置Master-Slave模式配置样例:
  Master:
  


[*]
[*]
[*]
[*]      
[*]          file:${activemq.conf}/credentials.properties
[*]      
[*]
[*]
[*]
[*]
[*]   
[*]      
[*]   
[*]
[*]   
[*]      
[*]   
[*]
[*]   
[*]      
[*]            
[*]               
[*]            
[*]            
[*]               
[*]            
[*]            
[*]               
[*]            
[*]      
[*]   
[*]
[*]   
[*]      
[*]   
[*]
[*]
[*]
[*]
[*]   
[*]   
[*]   
[*]   
[*]   
[*]   
[*]
[*]
[*]
[*]
  

  Slave:
  


[*]
[*]
[*]
[*]      
[*]          file:${activemq.conf}/credentials.properties
[*]      
[*]
[*]
[*]
[*]   
[*]      
[*]   
[*]
[*]   
[*]      
[*]   
[*]
[*]   
[*]      
[*]            
[*]               
[*]            
[*]            
[*]               
[*]            
[*]            
[*]               
[*]            
[*]      
[*]   
[*]
[*]   
[*]      
[*]   
[*]
[*]
[*]
[*]
[*]   
[*]   
[*]   
[*]   
[*]   
[*]   
[*]
[*]
[*]
[*]
[*]
  



页: [1]
查看完整版本: ActiveMQ使用MySQL进行消息持久化