第 4 章 消息驱动 Beans


4.1. 消息驱动 Beans

消息驱动型 Bean(MDB)为应用程序开发提供事件驱动的模型。MDB 的方法不注入或从客户端代码调用,而是由接收来自 Jakarta 消息传递服务器等消息传递服务的消息触发。Jakarta EE 规范要求支持 Jakarta 消息传递,但也支持其他消息传递系统。

MDB 是一种特殊的无状态会话 Bean。它们实施名为 onMessage(Message 消息) 的方法。当 MDB 正在侦听的 Jakarta 消息目的地收到消息时,会触发此方法。也就是说,MDB 是由从 Jakarta 消息传递提供商接收消息触发的,这与无状态会话 Bean 不同,其中方法通常由 Jakarta 企业 Bean 客户端调用。

MDB 异步处理消息.默认情况下,每个 MDB 最多可以有 16 个会话,每个会话处理一个消息。没有消息顺序保证。若要实现消息排序,需要将 MDB 的会话池限制为 1

示例:管理CLI命令将会话池 设置为 1:

/subsystem=ejb3/strict-max-bean-instance-pool=mdb-strict-max-pool:write-attribute(name=derive-size,value=undefined)

/subsystem=ejb3/strict-max-bean-instance-pool=mdb-strict-max-pool:write-attribute(name=max-pool-size,value=1)

reload
Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat