Apache camel ActiveMQ内部到特定工作池的路由逻辑

Apache camel ActiveMQ内部到特定工作池的路由逻辑,apache-camel,jms,activemq,jms-topic,spring-dsl,Apache Camel,Jms,Activemq,Jms Topic,Spring Dsl,我有一个设想 我为短信和电子邮件配置了相同的队列 我希望ActiveMQ将消息路由到特定的使用者池,即,如果它是SMS,则必须将其路由到SMS的工作线程池 因此,如果我需要扩大短信数量,那么我只需要增加短信工作池的池大小,而不是电子邮件工作池 我可以使用Apache Camel来实现我的需求的路由逻辑吗?有许多选项可以支持这一点: 在每条消息上设置一个标头,以便使用者可以使用JMS选择器过滤消息 在ActiveMQ代理中使用虚拟目标(代理可以基于消息头值进行筛选): 使用驼峰代理组件编写自定义拦

我有一个设想

我为短信和电子邮件配置了相同的队列

我希望ActiveMQ将消息路由到特定的使用者池,即,如果它是SMS,则必须将其路由到SMS的工作线程池

因此,如果我需要扩大短信数量,那么我只需要增加短信工作池的池大小,而不是电子邮件工作池


我可以使用Apache Camel来实现我的需求的路由逻辑吗?

有许多选项可以支持这一点:

  • 在每条消息上设置一个标头,以便使用者可以使用JMS选择器过滤消息

  • 在ActiveMQ代理中使用虚拟目标(代理可以基于消息头值进行筛选):

  • 使用驼峰代理组件编写自定义拦截器处理程序:

  • 按照Nayan的建议,使用驼峰消息路由器或基于内容的路由器

  • 每个消息类型使用单独的队列(即。queue://OUTBOUND.SMS, queue://OUTBOUND.EMAIL..)


  • 每个都有好处和权衡#1、#4和#5不需要任何服务器端配置,这便于尽可能降低代理维护。

    可以参考文档-,谢谢Matt:-),因此我决定使用虚拟目的地谢谢Sabya。很高兴听到你在路上。请你“接受”我的回答好吗?