Happy to help, and I'm glad that let you get it working.
On Sep 1, 2015 10:26 PM, "wang" <w...@kai.co.jp> wrote:

> Hi Tim
> Thank you so much.
> With the following configuration, it works very well.
>
> on server 10.80.1.1, add the networkConnectors as the following:
>         <networkConnectors>
>             <networkConnector uri="static:(tcp://10.80.1.2:61616,tcp://
> 10.80.1.3:61616)"/>
>         </networkConnectors>
>
> on server 10.80.1.2, add the networkConnectors as the following:
>         <networkConnectors>
>             <networkConnector uri="static:(tcp://10.80.1.1:61616,tcp://
> 10.80.1.3:61616)"/>
>         </networkConnectors>
>
> on server 10.80.1.3, add the networkConnectors as the following:
>         <networkConnectors>
>             <networkConnector uri="static:(tcp://10.80.1.1:61616,tcp://
> 10.80.1.2:61616)"/>
>         </networkConnectors>
>
> and add the three servers to HAProxy, as the following:
>
> frontend mqtt_proxy
>     bind *:1883
>     mode tcp
>     default_backend mqtt_agent
>
> backend mqtt_agent
>     mode tcp
>     option  tcplog
>     balance roundrobin
>     server mqtt_01 10.80.1.1:1883 check
>     server mqtt_02 10.80.1.2:1883 check
>     server mqtt_03 10.80.1.3:1883 check
>
> It works well as a cluster of mqtt brokers.
> Thank you very much again.
>
> Wang
> On 2015年09月02日 00:26, Tim Bain wrote:
>
>> In that case, you'll want each broker connected simultaneously to both the
>> other two brokers (but not to themselves!), using the static transport
>> instead of masterslave (which is really just syntactic sugar for failover,
>> resulting in a connection to only one of the N underlying URIs).  The
>> easiest option is to have have each broker make non-duplex connections to
>> all other brokers, though you can do it with duplex connections with a
>> little more effort; just make sure you don't make two duplex connections,
>> one from each side.
>> On Sep 1, 2015 8:18 AM, "wang" <w...@kai.co.jp> wrote:
>>
>> Hi Tim
>>> Thanks for you quick reply.
>>>
>>> What I am trying is to look for a network of brokers (where all brokers
>>> are active and forward messages to each other to reach consumers
>>> connected
>>> to the other brokers, and where messages may be delivered out of order
>>> compared to when they were sent). But I donot know how to configure a
>>> network of brokers, so I tried to use master/slave configure.
>>>
>>> I want a network of brokers working with load balancer  with single
>>> outside IP address.
>>>
>>> Thanks,
>>> Wang
>>>
>>> On 2015年09月01日 23:05, Tim Bain wrote:
>>>
>>> Are you trying to have a master/slave cluster (where only one broker is
>>>> active and the others are backups, and where message ordering is
>>>> consistent), or are you looking for a network of brokers (where all
>>>> brokers
>>>> are active and forward messages to each other to reach consumers
>>>> connected
>>>> to the other brokers, and where messages may be delivered out of order
>>>> compared to when they were sent)?  Your path forward depends on which
>>>> you're doing, so let's be sure we're clear on that before we go any
>>>> further.
>>>>
>>>> On Sep 1, 2015 7:13 AM, "wang" <w...@kai.co.jp <mailto:w...@kai.co.jp>>
>>>> wrote:
>>>>
>>>>      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
>>>>      <http://10.80.1.1:61616>,tcp://10.80.1.2:61616
>>>>      <http://10.80.1.2:61616>,tcp://10.80.1.3:61616
>>>>      <http://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 <http://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
>>>>      <http://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 <http://10.80.1.3?async=false> to
>>>>      failover:(tcp://10.80.1.1:61616
>>>>      <http://10.80.1.1:61616>,tcp://10.80.1.2:61616
>>>>      <http://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
>>>>      <http://10.80.1.1:61616>
>>>>       INFO | Network connection between vm://10.80.1.3#180
>>>>      <http://10.80.1.3#180> and tcp://10.80.1.1:61616
>>>>      <http://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>  <mailto:
>>>>> 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  <http://10.80.1.1:1883>
>>>>>>      ,tcp://10.80.1.2:1883  <http://10.80.1.2:1883>,tcp://
>>>>>> 10.80.1.3:1883
>>>>>> <http://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  <
>>>>>> http://10.80.1.1:37442>  failed:
>>>>>>      org.apache.activemq.transport.InactivityIOException: Channel was
>>>>>> inactive
>>>>>>      for too (>60000) long: tcp://10.80.1.1:37442  <
>>>>>> http://10.80.1.1:37442>
>>>>>>        INFO | Establishing network connection from vm://
>>>>>> 10.80.1.1?async=false  <http://10.80.1.1?async=false>
>>>>>>      to failover:(tcp://10.80.1.1:1883  <http://10.80.1.1:1883
>>>>>> >,tcp://
>>>>>> 10.80.1.2:1883  <http://10.80.1.2:1883>
>>>>>>      ,tcp://10.80.1.3:1883)?randomize=false&maxReconnectAttempts=0
>>>>>>        INFO | Connector vm://10.80.1.1  <http://10.80.1.1>  started
>>>>>>        INFO | Successfully connected to tcp://10.80.1.1:1883  <
>>>>>> http://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  <http://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  <
>>>>>> http://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  <http://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  <mailto:w...@kai.co.jp>
>>>>      *********************
>>>>
>>>>
>>>> --
>>> *********************
>>> 株式会社カイクリエイツ 王 兆強
>>> 〒150-0001 東京都渋谷区神宮前5-39-6
>>> TEL : 03-3486-9119
>>> FAX : 03-3486-9800
>>> Mail: w...@kai.co.jp
>>> *********************
>>>
>>>
>>>
> --
> *********************
> 株式会社カイクリエイツ 王 兆強
> 〒150-0001 東京都渋谷区神宮前5-39-6
> TEL : 03-3486-9119
> FAX : 03-3486-9800
> Mail: w...@kai.co.jp
> *********************
>
>

Reply via email to