我目前正在调查队列或主题的实现,基于我们项目中的 activeMQ。设置非常简单,我们使用 maven 模块根据业务领域分离业务逻辑。一个通用模块允许我们组装通用逻辑。
简化示例:
- 通用模块
- 产品模块
- 客户模块
要求之一是某些操作与后端异步(通过activeMQ),后端又以结果消息进行响应。第二个要求是应该可以通过创建一个新的可部署工件来水平扩展应用程序,该工件只包含需要更多汁液的模块。
我们使用的是 Spring 4,当然还有 jms 和 activeMQ。
关于我的问题。我们希望只使用一个队列或主题来进行后端连接。这意味着我们的通用模块将处理 jms 配置(jms 工厂、jms 配置),并且不同类型的消息将通过该队列/主题发送。如何确保产品相关消息由“产品”模块处理,而与客户相关的消息由“客户”模块处理?如果模块被部署两次,我如何确保只有一个“产品”模块逻辑可以处理消息?您会推荐什么方法,或者这个队列/主题是“坚果”?
由于 publ/subsc 模式,我自己正在考虑使用主题的方向...,或者可能队列侦听器充当观察者模式中的发布者,产品或客户端订阅者可能订阅以接管处理消息?
谢谢你的帮助。