Apache camel SEDA能帮助扩展JMS消费者吗

Apache camel SEDA能帮助扩展JMS消费者吗,apache-camel,Apache Camel,如果我有一个骆驼JMS消费者 maxConcurrentConsumers=10 在最大池大小为10的情况下从MQ读取 连接,以及 disableReplyTo=true 问题1。增加maxConcurrentConsumers是否有助于扩大路线?从队列中读取消息后,是否放弃连接 问题2。消费信息后立即放置SEDA生产者消费者图案是否有助于缩放?或者,是否可以简单地增加JMS使用者上的maxConcurrentConsumers 一般来说,最好让JMS使用者进行扩展,然后通过添加更多节点进行水平

如果我有一个骆驼JMS消费者

maxConcurrentConsumers=10 在最大池大小为10的情况下从MQ读取 连接,以及 disableReplyTo=true 问题1。增加maxConcurrentConsumers是否有助于扩大路线?从队列中读取消息后,是否放弃连接

问题2。消费信息后立即放置SEDA生产者消费者图案是否有助于缩放?或者,是否可以简单地增加JMS使用者上的maxConcurrentConsumers


一般来说,最好让JMS使用者进行扩展,然后通过添加更多节点进行水平扩展

SEDA是JVM中的内存队列,即使您可以通过从JMS队列到SEDA队列快速消费来扩展,那么您只需将消息从代理中的安全存储移动到JVM内存存储中更不安全的存储

JMS代理是为扩展而构建的,它有几种体系结构样式和拓扑,用于根据您的需要设置代理系统。所以最好利用它

JMS组件具有设置并发性的选项,您也可以对其进行调整。在JMS客户端/代理端也是如此。例如,ActiveMQ具有预取大小和其他可以调整的大小


戴上我的商业帽:如果您是Fuse用户,那么我们有缩放Fuse/AMQ的指南,您也可以阅读,并从我们的团队获得帮助。

谢谢您的回答。如果JMS路由不是请求-应答,也不是事务性的,那么每个并发使用者是否都会尝试保持连接?基本上,我想知道如果我的MQ连接池最多是10个,那么我仍然可以从20个并发消费者那里获得好处。或者,这是消费者可以通过缓存选项控制的吗?是的,消费者可以在网络连接的基础上进行扩展。网络连接可以进行池化,因此池化配置也很重要,使用TCP/IP设置和套接字/io级别上的所有内容进行联网也很重要。而且伸缩性也在一定程度上取决于您如何处理Camel中的消息,如果它们正在进行繁重的CPU工作,或者它们主要在执行其他IO操作,并等待远程服务响应等等。