Hi Tim
Thanks for you answer.
I m trying to accomplish here is because I want to put the three brokers
behind a load balancer. So if one broker down, the others could server well.
I read from here
http://activemq.apache.org/networks-of-brokers.html
on that page it said as the following about MasterSlave Discovery
The URIs are listed in order for:
MASTER,SLAVE1,SLAVE2...SLAVE(thumbs down)
The same configuration options for|static:|are available
for|masterslave:
so I just to put the networkConnector uri to just 10.80.1.1, and leave
the other 2 and 3 as default configuration.
|
|Now, I using put the following configure to all the activeMQ instances,
and now it works fine, I used HAProxy to serve as load balancer. Just
set dulplex as true and using 61616 not 1883
|
|
<networkConnectors>
<networkConnector duplex="true"
uri="masterslave:(tcp://10.80.1.1:61616,tcp://10.80.1.2:61616,tcp://10.80.1.3:61616)"/>
</networkConnectors>
|
Anyway, it works fine now. Although there is an error like the
following. "prsence" is a topic I added using web console
the error log as the followings:
WARN | Failed to register topic://presence
javax.management.InstanceAlreadyExistsException:
org.apache.activemq:brokerName=10.80.1.3,connector=networkConnectors,networkConnectorName=NC,networkBridge=tcp_//10.80.1.1_61616,type=Broker,direction=inbound,destinationType=Topic,destinationName=presence
at
com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)[:1.7.0_79]
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)[:1.7.0_79]
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)[:1.7.0_79]
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)[:1.7.0_79]
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)[:1.7.0_79]
at
com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)[:1.7.0_79]
at
org.apache.activemq.broker.jmx.ManagementContext.registerMBean(ManagementContext.java:408)[activemq-broker-5.12.0.jar:5.12.0]
at
org.apache.activemq.broker.jmx.AnnotatedMBean.registerMBean(AnnotatedMBean.java:72)[activemq-broker-5.12.0.jar:5.12.0]
at
org.apache.activemq.network.MBeanBridgeDestination.onInboundMessage(MBeanBridgeDestination.java:97)[activemq-broker-5.12.0.jar:5.12.0]
at
org.apache.activemq.network.MBeanNetworkListener.onInboundMessage(MBeanNetworkListener.java:115)[activemq-broker-5.12.0.jar:5.12.0]
at
org.apache.activemq.network.DemandForwardingBridgeSupport.serviceInboundMessage(DemandForwardingBridgeSupport.java:1683)[activemq-broker-5.12.0.jar:5.12.0]
at
org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:652)[activemq-broker-5.12.0.jar:5.12.0]
at
org.apache.activemq.network.DemandForwardingBridgeSupport$3.onCommand(DemandForwardingBridgeSupport.java:225)[activemq-broker-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.failover.FailoverTransport$3.onCommand(FailoverTransport.java:213)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:300)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)[activemq-client-5.12.0.jar:5.12.0]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_79]
WARN | Transport (tcp://10.80.1.1:61616) failed, not attempting to
automatically reconnect
java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:392)[:1.7.0_79]
at
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:267)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:221)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:213)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)[activemq-client-5.12.0.jar:5.12.0]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_79]
WARN | Network connection between vm://10.80.1.3#176 and unconnected
shutdown due to a remote error: java.io.EOFException
INFO | Establishing network connection from vm://10.80.1.3?async=false
to
failover:(tcp://10.80.1.1:61616,tcp://10.80.1.2:61616,tcp://10.80.1.3:61616)?randomize=false&maxReconnectAttempts=0
INFO | 10.80.1.3 bridge to 10.80.1.1 stopped
INFO | Successfully connected to tcp://10.80.1.1:61616
INFO | Network connection between vm://10.80.1.3#180 and
tcp://10.80.1.1:61616 (10.80.1.1) has been established.
Thank you Tim.
Do you know why I got the error above?
Regards,
Wang
On 2015年09月01日 21:42, Tim Bain wrote:
Why have you configured 10.80.1.1 to connect to itself, and why are 2 and 3
default configurations?
More generally, what are you trying to accomplish here?
I assume you've read the content at
http://activemq.apache.org/masterslave.html, but if not, you need to.
On Sep 1, 2015 3:25 AM, "wang" <w...@kai.co.jp> wrote:
Hi guys
I am Wang and I facing problem when i configured MQTT master-slave using
activeMQ 5.12
I have three servers: 10.80.1.1, 10.80.1.2, 10.80.1.3
I deployed default activeMQ instance onto 10.80.1.2, 10.80.1.3.
And I added the following networkConnectors to server 10.80.1.1 :
<networkConnectors>
<networkConnector uri="masterslave:(tcp://10.80.1.1:1883
,tcp://10.80.1.2:1883,tcp://10.80.1.3:1883)"/>
</networkConnectors>
I can started server 10.80.1.2 and server 10.80.1.3, but when I try to
start server 10.80.1.1
I got the following errors:
WARN | Transport Connection to: tcp://10.80.1.1:37442 failed:
org.apache.activemq.transport.InactivityIOException: Channel was inactive
for too (>60000) long: tcp://10.80.1.1:37442
INFO | Establishing network connection from vm://10.80.1.1?async=false
to failover:(tcp://10.80.1.1:1883,tcp://10.80.1.2:1883
,tcp://10.80.1.3:1883)?randomize=false&maxReconnectAttempts=0
INFO | Connector vm://10.80.1.1 started
INFO | Successfully connected to tcp://10.80.1.1:1883
WARN | Exception occurred processing:
MQTTFrame { type: unknown, qos: AT_MOST_ONCE, dup:false }:
org.apache.activemq.transport.mqtt.MQTTProtocolException: Unknown MQTTFrame
type: 0
WARN | Transport (tcp://10.80.1.1:1883) failed, not attempting to
automatically reconnect
java.io.EOFException
at
java.io.DataInputStream.readInt(DataInputStream.java:392)[:1.7.0_79]
at
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:267)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:221)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:213)[activemq-client-5.12.0.jar:5.12.0]
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)[activemq-client-5.12.0.jar:5.12.0]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_79]
INFO | Network connection between vm://10.80.1.1#86 and unconnected
shutdown due to a local error: java.lang.Throwable: remoteBrokerInfo is null
INFO | Connector vm://10.80.1.1 stopped
INFO | 10.80.1.1 bridge to Unknown stopped
who could give me some hints to solve this problem?
Regards,
Wang
--
*********************
株式会社カイクリエイツ 王 兆強
〒150-0001 東京都渋谷区神宮前5-39-6
TEL : 03-3486-9119
FAX : 03-3486-9800
Mail: w...@kai.co.jp
*********************