Thanks Tim. We're going to try a couple different solutions.
On Fri, Sep 27, 2019 at 1:13 AM Tim Bain <tb...@alumni.duke.edu> wrote: > Yes, if you're looking for competing consumer semantics but for each > message to be consumed exactly once in each data center, then a network of > brokers with a virtual topic atop the two queues would be my first thought > for how to do this. I've not personally done any bridging of virtual > destinations across a NoB, but I think that as long as you forward the > queues between the brokers and don't forward the topic, it should work as > your current setup does without the need for any Camel configuration. > > Tim > > On Mon, Sep 23, 2019 at 10:21 PM William Culler <willcul...@gmail.com> > wrote: > > > Hello Tim. > > > > Thanks for taking the time for a response. > > > > You are correct. The setup is being used to keep the 2 datacenters > > completely in sync. It allows us to switch our reporting frontend to the > > other datacenter at any time if we are having issues at the opposite > > datacenter. The messages are consumed from ActiveMQ to populate a > > relational reporting database that exists independently at each > datacenter. > > > > I'll give you a little more background. My team (the data engineering > > team) did not implement the configuration, We have been brought in > because > > of some performance issues, etc. and it appears that since it has KahaDB, > > the powers that be assume that it's a database and should fall under our > > team. > > > > In any event, we have been researching ActiveMQ and our configuration to > > help out. > > > > I believe that the thought process was that the apps would work as > follows: > > > > They would produce to the topic where there are 5 "streams", which is > what > > our company calls each individual application server, and the application > > would open 25 threads per topic, there are 10 topics, essentially one > topic > > for each message type. So we're looking at 1250 threads open producing > > messages to ActiveMQ. I assume they used a topic and then used the camel > > routes to intercept those messages and write them to the local and local > > remote queues as we have the same number of threads consuming messages > from > > the local queue and then 25 consumers set on the camel routes that route > > the messages from the local remote queue to the opposite datacenter. We > > need to be able to consume messages in parallel and it doesn't appear > that > > is possible using a topic in ActiveMQ 5.X as it is JMS 1.1 compliant. It > > appears that Virtual Topics are used to get around this. Correct me if > I > > am wrong on that. > > > > Are you suggesting that we could use a "network of brokers" with Virtual > > Topics to still get the functionality we have with the camel routes? > > > > William > > > > On Sun, Sep 22, 2019 at 1:39 AM Tim Bain <tb...@alumni.duke.edu> wrote: > > > > > William, > > > > > > If I understand you correctly, you're using Camel to clone the message > so > > > you get one per data center, and then using Camel to move the message > > from > > > the data center at which it was produced to the other one. And you're > > doing > > > this so that you can have all messages reach consumers in both data > > > centers, though I'm a little confused about why you're routing messages > > > sent to topics (with pub/sub semantics, supporting multiple consumers) > > to a > > > single local queue in each data center (which would allow only one > > consumer > > > per data center to process the message). Did I get that right? > > > > > > If so, it does seem like a network of brokers would handle this > natively > > > without all the Camel routes. You'd ensure that messages and > > subscriptions > > > for the topic in question is forwarded across the network bridge, and > all > > > consumers in either data center would get delivered a copy of the > > message. > > > What is it that you're accomplishing with the Camel routes that would > not > > > be accomplished with this setup? > > > > > > Tim > > > > > > On Tue, Sep 17, 2019 at 11:11 AM William Culler <willcul...@gmail.com> > > > wrote: > > > > > > > We have the following configuration. > > > > > > > > 3 brokers in Datacenter A in a master/slave configuration using a > > shared > > > > file system. 3 brokers in Datacenter B in a master/slave > configuration > > > > using a shared file system. > > > > > > > > There are producers sending messages to topics at Datacenter A. There > > are > > > > Camel routes routing those messages from the topics to separate local > > > > queues, 1 for local processing and 1 for remote processing, where > > another > > > > set of Camel routes route the messages from the local remote queue to > > > > remote queues at Datacenter B. > > > > > > > > The same configuration exists at Datacenter B where the routing for > the > > > > remote works in the opposite direction to Datacenter A. > > > > > > > > This configuration is intended to give us an active/active > > > multi-datacenter > > > > cluster. > > > > > > > > Even though this configuration seems to work, we are wondering if > this > > > > would be the recommended way to do this. I am thinking in terms of > > using > > > > "network of brokers", but reading the documentation, it doesn't seem > > like > > > > that would accomplish what we are accomplishing with the Camel > routes. > > > > > > > > We do have problems from time to time, but we do not know for sure if > > the > > > > Camel routes are the cause. > > > > > > > > Any insight would be appreciated. > > > > > > > > > >