一个MDB可以监听多个监听端口吗

Posted

技术标签:

【中文标题】一个MDB可以监听多个监听端口吗【英文标题】:Can an MDB listen to multiple listener ports 【发布时间】:2012-03-27 04:39:56 【问题描述】:

我可以设置一个 MDB 来监听多个监听端口吗?每个侦听器端口将连接到一个特定队列。 如果不是,为什么限制一个MDB只能监听一个端口?

【问题讨论】:

【参考方案1】:

没有。一个 MDB 只能与一个侦听器端口(或一个激活规范)相关联。

作为解决此限制的一种可能解决方法,您可以多次配置 MDB,以便每个都可以绑定到不同的队列(侦听器端口/激活规范)。

【讨论】:

【参考方案2】:

MDB 被部署到应用服务器。应用程序服务器通常只监听一个端口。您可以构建一个简单的 java 应用程序,为不同的服务器创建不同的连接;虽然以可配置的方式。只是不像 MDB。

【讨论】:

我认为您可能指的是一个 http 端口,但 OP 关注的是 listener ports,这是一个托管在 WAS 应用程序服务器上的服务,用于将消息驱动的 bean 连接到消息队列。 【参考方案3】:

MDB 是位于端口概念之上的一层(可能是多个)抽象层。大多数消息传递实现将通过单个端口代理流量,但可能是数据/控制端口的组合。

将代理想象成一个邮件仓库,信件进来后,代理将它们放入正确的邮箱,同时提供许多其他服务(对等故障转移/通信、持久性、保证传递、消息确认等)。

MDB 是订阅这些抽象邮箱的代理。他们真的不了解底层架构。就他们而言,事情都在内存中本地发生。他们唯一的工作是遵守 EJB 标准,而容器(通常通过应用更底层的标准,如在原始套接字上再次分层的 JCA)负责确保消息到达目的地。

如果您进一步详细说明您为何担心 MDB 与端口的关系,也许会有所帮助

【讨论】:

我认为 OP 指的是 WebSphere listener ports,它是 MDB 在 WAS 中绑定的一个组件,用于监听消息目的地;我认为 OP 并不关心 MDB 使用的底层网络端口。

以上是关于一个MDB可以监听多个监听端口吗的主要内容,如果未能解决你的问题,请参考以下文章

rose策略监听多个端口应用吗

单个服务器进程可以监听多个端口吗?

TCP和UDP使用同一端口通信

TCP和UDP可以同时监听相同的端口吗

多个进程监听同一个端口?

C++ SOCKET编程,如何监听多个端口,比如监听两个端口,关键代码该怎么写,求教求教,求代码!