• activemq应用总结(四)


    BrokerCluster

            Broker Cluster主要是通过network of Brokers在多个ActiveMQ实例之间进行消息的路由。Broker的集群分为Static Discovery和Dynamic Discovery两种。

    (1)StaticDiscovery集群

    Static Discovery集群就是通过硬编码的方式使用所有已知ActiveMQ实例节点的URI地址。如:消息生产者应用连接一个ActiveMQ实例,我们暂时称为MQ1,所有的消息都由该实例提供;两个消息消费者应用分别连接另外两个ActiveMQ实例,分别为MQ2和MQ3,两个消息消费者需要消费MQ1上的消息,但它们连接的都不是MQ1,可以通过Static Discovery方式把MQ1上的消息路由到MQ2和MQ3,为了保证消费者不因某个节点的失效而导致不能消费消息,在消费者应用中需要配置所有节点的URI。

        生产者ActiveMQ实例不需要特殊的配置,所有的消费者ActiveMQ实例需要添加networkConnectors节点,连接到生产者MQ实例,如:

    <networkConnectors>  
    <networkConnector uri="static:failover://(tcp://localhost:61616)" duplex="true" />  
    </networkConnectors>

    上面这段配置需要加在<persistenceAdapter>节点的前面。然后在消费者应用中设置brokerURL的值如: 

    <property name="brokerURL" value="<span style="color: #ff0000;">failover:(tcp://localhost:61617)</span>?initialReconnectDelay=100" /> 

    Static Discovery集群方式有些缺点,如不能解决单点故障问题,若某个Broker失效时,有可能造成数据的丢失,动态添加节点不够智能化。

        更加详细的说明与配置请参考:http://activemq.apache.org/networks-of-brokers.html

    (2)DynamicDiscovery集群

            DynamicDiscovery集群方式在配置ActiveMQ实例时,不需要知道所有其它实例的URI地址,只需在所有实例的${ACTIVEMQ_HOME}/conf/activemq.xml文件中添加以下内容:

    <networkConnectors>  
    <networkConnector uri="multicast://default" />  
    </networkConnectors>

     同时在<transportConnectors>节点中添加

    <transportConnectors>  
    <transportConnector name="openwire" uri="tcp://0.0.0.0:61616" discoveryUri="multicast://default" />  
    </transportConnectors>  

    这样就可以实现消息在所有ActiveMQ实例之间进行路由。Dynamic Discovery集群方式的缺点和Static Discovery一样。

    具体可以参考activemq下载下来的conf目录下的几个配置文件。

    \conf\activemq-static-network-broker1.xml

    \conf\activemq-static-network-broker2.xml

    \conf\activemq-dynamic-network-broker1.xml

    \conf\activemq-dynamic-network-broker2.xml

  • 相关阅读:
    陶瓷电容的结构、工艺、失效模式
    Vue.js最佳实践
    Vue 超快速学习
    CSS 小技巧
    HTML5 Canvas
    webkit下面的CSS设置滚动条
    Some untracked working tree files would be overwritten by checkout. Please move or remove them before you can checkout. View them
    JSCS: Please specify path to 'JSCS' package
    React中ref的使用方法
    React 60S倒计时
  • 原文地址:https://www.cnblogs.com/hzcxy/p/2984664.html
Copyright © 2020-2023  润新知