ActiveMQ MasterSlave
MasterSlave方式中,master提供服务,slave备份master的数据。当master挂掉后,slave会变成master继续工作。
Shared File System Master Slave
基于共享文件系统,第一个获取文件上的独占锁的broker,就是master,如果这个broker挂了,其他broker获取文件上的独占锁,就从slave变成master。
broker61616、broker61618、broker61619的persistenceAdapter配置如下:
1 | <persistenceAdapter> |
启动
依次启动broker,61616由于先启动,此时是master,61618、61619的启动结果如下,由于没抢到文件的独占锁,变成slave:
此时结构图如下:
master关闭
关闭后,其中一个slave抢到文件的独占锁,变成master:
此时结构图如下:
重启原master
由于此时文件的独占锁已经被抢了,所以就算原master重启,也只能是slave了:
此时结构图如下:
JDBC Master Slave
jdbcPersistenceAdapter要加个locker标签和lockKeepAlivePeriod的值。
1 | <persistenceAdapter> |
启动
依次启动broker,61616由于先启动,此时是master,61618、61619的启动结果如下,由于没抢到锁,在等待:
数据库值:
61618:
61619:
master关闭
此时61619变成master
重启原master
在等待中