0
votes

I'm trying to create a network of brokers such that there will be two 'domains' a core and a distribution. The difference between then will be that no topics published to in the distribution will be allowed to flow into core.

broker_core_primary broker_core_secondary broker_dist_primary broker_dist_secondary

The message flow would be as follows: broker_core_primary <---> broker_core_secondary broker_dist_primary <---> broker_dist_secondary core (broker_core_primary,broker_core_secondary) ----> dist(broker_dist_primary,broker_dist_secondary)

I've got this working with the below configs but it does not gracefully recover from the loss of any one broker and reintroduction of that broker makes things even worse.

Any help would be greatly appreciated. I'm open to changing topologies as well, so long as I can keep the concept of a separate publication domain so that topics published in dist can be blocked from consumption on core brokers.

broker_core_primary

broker_core_secondary broker_core_primary" duplex="true" networkTTL="5" uri="static:(tcp://broker_core_primary:61616)?maxReconnectDelay=5000,useExponentialBackOff=false,randomize=false,trace=true" userName="brokerBridge" password="REMOVED" />

broker_dist_primary broker_core" duplex="false" networkTTL="5" uri="static:(tcp://broker_core_primary:61616,tcp://broker_core_secondary:61616)?maxReconnectDelay=5000,useExponentialBackOff=false,randomize=false,trace=true" userName="brokerBridge" password="REMOVED" />

broker_dist_secondary broker_core" duplex="false" networkTTL="5" uri="static:(tcp://broker_core_primary:61616,tcp://broker_core_secondary:61616)?maxReconnectDelay=5000,useExponentialBackOff=false,randomize=false,trace=true" userName="brokerBridge" password="REMOVED" /> broker_dist_primary" networkTTL="5" duplex="true" uri="static:(tcp://broker_dist_primary:62626)?maxReconnectDelay=5000,useExponentialBackOff=false,randomize=false,trace=true" userName="brokerBridge" password="REMOVED">

1

1 Answers

0
votes

please define "not gracefully recover" just some possible mistakes:

  • your producers and consumers need to be aware of all cluster node
  • for a network of 4 brokers in (basicly) a hypercube ttl 5 is overkill and could have unwanted effects

a different way of blocking destinations from publication to connected network nodes is to exclude them in config. excluded (or included) destinations would be configured on the network connectors (see the documentation)

ps: please format your questions better and use real xml from your config, its really hard to read.