以下是我的应用程序基本功能...HTTP-> QUEUE-> PROCESS-> DATABASE-> TOPIC
from("jetty:http://0.0.0.0/inbound") .to("activemq:inboundQueue");
from("activemq:inboundQueue?maxConcurrentConsumers=50") .process(decode()) .process(transform()) .process(validate()) .process(saveToDatabase()) .to("activemq:topic:ouboundTopic");
所以,我已经阅读了所有ServiceMix和AcitveMQ集群页面,但仍然不确定应该选择哪种方式。
我知道我可以使用主/从设置进行高可用性,但这并不能帮助扩展性。
我已经了解了代理网络,但不确定如何应用。例如,如果我在集群中的多个节点上部署相同的Camel路由,它们将如何“交互”?如果我将我的HTTP生产者指向一个节点(NodeA),哪些消息将被发送到NodeB?队列/主题是否在节点A/B之间共享...如果是,消息是如何分割或复制的?此外,外部客户端如何订阅我的“outboundTopic”(并获取所有消息等)?
另外,我一直在考虑是否应该在多个ServiceMix实例之间共享代理。这样做会更简洁,因为只需要管理一组队列/主题,并且可以通过添加更多实例来扩展。但是,现在我受限于单个代理的可扩展性,而且又回到了单点故障的问题...
如果有人能为我澄清这些折衷方案...我将不胜感激。