ZooKeeper搭建
略
MQ高可用集群部署
参考http://activemq.apache.org/replicated-leveldb-store.html
ip |
集群通信端口 |
openwire端口 |
管理端口 |
192.168.1.100 |
61619 |
61616 |
8161 |
192.168.1.200 |
61619 |
61616 |
192.168.1.300 |
61619 |
61616 |
一、修改 vim conf/activemq.xml
1 2
| 所以节点brokerName必须一致 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="mybroker" dataDirectory="${activemq.data}">
|
二、持久化配置
node1.100
1 2 3 4 5 6 7 8 9 10
| <persistenceAdapter> <replicatedLevelDB directory="${activemq.data}/leveldb" replicas="3" bind="tcp://0.0.0.0:61619" zkAddress="x.x.x.x:2181,x.x.x.x:2181,x.x.x.x:2181" zkPassword="" hostname="192.168.1.100" zkPath="/activemq/leveldb-stores" /> </persistenceAdapter>
|
node21.200
1 2 3 4 5 6 7 8 9 10 11
| <persistenceAdapter> <replicatedLevelDB directory="${activemq.data}/leveldb" replicas="3" bind="tcp://0.0.0.0:61619" zkAddress="x.x.x.x:2181,x.x.x.x:2181,x.x.x.x:2181" zkPassword="" hostname="192.168.1.200" zkPath="/activemq/leveldb-stores" /> </persistenceAdapter> `
|
node31.300
1 2 3 4 5 6 7 8 9 10
| <persistenceAdapter> <replicatedLevelDB directory="${activemq.data}/leveldb" replicas="3" bind="tcp://0.0.0.0:61619" zkAddress="x.x.x.x:2181,x.x.x.x:2181,x.x.x.x:2181" zkPassword="" hostname="192.168.1.300" zkPath="/activemq/leveldb-stores" /> </persistenceAdapter>
|
启动所有节点activemq
1
| /opt/apache-activemq-5.14.0/bin/activemq start
|
客户端失败转移连接
ActiveMQ的客户端只能访问Master的Broker,其他处于Slave的Broker不能访问,所以客户端连接的Broker应该使用failover协议(失败转移)
1
| mq.broker.url=failover:(tcp://192.168.1.100:61616,tcp://192.168.1.200:61616,tcp://192.168.1.300:61616)?randomize=false&initialReconnectDelay=1000
|
记录部分activemq.xml配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <plugins> true<simpleAuthenticationPlugin> true<users> true<authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/> //conf/credentials.properties true<authenticationUser username="admin" password="admin11111" groups="users"/> true</users> true</simpleAuthenticationPlugin> <authorizationPlugin> <map> <authorizationMap> <authorizationEntries> <authorizationEntry queue=">" read="admins" write="admins" admin="admins" /> <authorizationEntry queue=">" read="users" write="users" admin="users" /> <authorizationEntry queue="GUEST.>" read="guests" write="guests,users" admin="guests,users" /> <authorizationEntry queue="TEST.Q" read="guests" write="guests" /> <authorizationEntry topic=">" read="admins" write="admins" admin="admins" /> <authorizationEntry topic="USERS.>" read="users" write="users" admin="users" /> <authorizationEntry topic="GUEST.>" read="guests" write="guests,users" admin="guests,users" /> <authorizationEntry topic="ActiveMQ.Advisory.>" read="guests,users" write="guests,users" admin="guests,users"/> </authorizationEntries> </authorizationMap> </map> </authorizationPlugin> </plugins>
|
管理页面密码在jetty-realm.properties文件中修改