gpt4 book ai didi

java - 部署 MDB 的多个副本

转载 作者:太空宇宙 更新时间:2023-11-04 08:19:29 24 4
gpt4 key购买 nike

我们有一个 JMS 主题,它接收多种类型的消息(类型数量在部署时确定),并要求按类型顺序处理消息。所有类型都可以由同一个 MDB 处理。

我们有一个解决方案,我们可以部署该 MDB 的多个版本,并为每种类型提供选择器。虽然这有效,但这意味着我们每次部署新版本时都需要更新应用程序中的部署描述符,这似乎是一个容易出错的过程。

我们已经考虑使用部署计划来处理这个问题,但据我了解,只能更改现有的 MDB,而不能添加新的 MDB。

我们还缺少什么吗?

我们使用的是 weblogic 10.3

最佳答案

这是一种处理方法。由于您可以有效地单线程处理给定类型的消息,因此您可以放弃 MDB,转而管理线程池,每个线程处理一种类型。您可以实现一个公开 JMX 管理接口(interface)(或远程 EJB 接口(interface))的单例服务,该接口(interface)允许您动态添加/删除类型。当此服务收到添加新类型的调用时,它会启动一个新线程,该线程仅循环执行正常的 JMS 接收调用(使用适当的选择器)。如果您的服务维护类型 -> 线程的映射,您还可以实现删除类型的逻辑(例如中断线程或以其他方式通知它已完成)。

如果您达到了每个线程的类型不再可扩展的地步,那么您将需要在服务中实现更复杂的排队和池解决方案。

关于java - 部署 MDB 的多个副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9827833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com