请考虑附图中显示的场景:
Portal(生产者)将发送一些消息到总线上,这些消息必须由多个应用程序(消费者)- PAYROLLAPP、HELPDESK等进行处理。
可以运行多个消费者应用程序的实例,也可以动态添加/删除这些实例。
现在,关键是确保每个应用程序仅处理一次消息,即如果PAYROLLAPP-1处理了该消息,则PAYROLLAPP-2不应该处理它;当然,在上图中,HELPDESK - 1必须处理它。简而言之,在多个实例的情况下,只有一个必须处理消息,一次处理。
当我搜索答案时,大部分内容都是关于创建“选择性消费者”的-根据某些逻辑接受/拒绝消息的消费者-请注意,不能对图中显示的应用程序进行更改/添加/包装;逻辑必须驻留在管理总线的提供程序中。
请指导同样的问题。
在Petter的回答之后添加更多细节:
左点线左侧的项是“方法”-纯JMS、ESB、EAI
右点线右侧的项目是“实现”
现在,重要的部分-查询:
Portal(生产者)将发送一些消息到总线上,这些消息必须由多个应用程序(消费者)- PAYROLLAPP、HELPDESK等进行处理。
可以运行多个消费者应用程序的实例,也可以动态添加/删除这些实例。
现在,关键是确保每个应用程序仅处理一次消息,即如果PAYROLLAPP-1处理了该消息,则PAYROLLAPP-2不应该处理它;当然,在上图中,HELPDESK - 1必须处理它。简而言之,在多个实例的情况下,只有一个必须处理消息,一次处理。
当我搜索答案时,大部分内容都是关于创建“选择性消费者”的-根据某些逻辑接受/拒绝消息的消费者-请注意,不能对图中显示的应用程序进行更改/添加/包装;逻辑必须驻留在管理总线的提供程序中。
请指导同样的问题。
在Petter的回答之后添加更多细节:
左点线左侧的项是“方法”-纯JMS、ESB、EAI
右点线右侧的项目是“实现”
现在,重要的部分-查询:
- 无论使用什么解决方案(纯JMS,ESB,EAI),下面水平虚线以下的部分(应用程序特定队列)是否需要实现?
- 相对于“纯”JMS(Active MQ等),使用ESB(JBoss ESB等),有何帮助/阻碍?ESB比仅支持Java的JMS提供任何优势吗?我非常困惑 - “ESB还是JMS”,即使参考了这些主题:JMS和ESB-它们之间的关系?。它有一个回复说:“JMS不适合集成REST服务、文件系统、S/FTP、电子邮件、Hessian、SOAP等,这些最好用原生支持这些类型的ESB处理。例如,如果您有一个在午夜倾倒500MB CSV文件的过程,并且您希望另一个系统取出该文件,解析CSV并导入到数据库中,这可以轻松地通过ESB完成,而仅使用JMS的解决方案将很糟糕。同样,负载平衡/故障转移至多个后端实例的REST服务的集成可以通过支持HTTP/S的ESB更好地完成。”它只让我更加困惑!!!
- 使用EAI框架(Apache Camel等)是否是一种与纯JMS或ESB方法完全不同的方法?如果是,如何以及有哪些优缺点?
- 我被告知仅使用ESB将无济于事,需要使用BPM(或其他内容)来定义和存储‘路由’逻辑 - 这是真的吗?