java - 防火墙后的 JMS 客户端

标签 java jms

我有以下场景: 包含命令的消息必须发送到使用消费者互联网连接连接到互联网的消费者/客户端。所以这意味着运行客户端的系统不能直接从 Internet 访问。命令服务器位于面向 Internet 的服务器上。

由于需要可靠的连接,我考虑过使用 JMS 队列。命令服务器将托管消息传递组件并将提供必要的队列。这是我的问题。客户端是否需要可从 Internet 访问,例如它会打开用于将消息从服​​务器推送到客户端的端口吗?

如果是这样,是否还有其他模型可以避免这种行为?例如。我可以考虑打开一个从客户端到服务器的持久 HTTP 连接,用于推送消息 (COMET)。但是,我真的很想保留 JMS 提供的抽象。

作为备用计划,您能推荐任何好的替代方案吗?

最佳答案

通常是客户端与服务器建立连接,因此客户端可以在防火墙后面。

如果您需要反转方向或更好地保护您的 JMS 服务器,您始终可以在防火墙后面的计算机和命令服务器之间设置 VPN 样式的连接。 OpenVPN是一个健壮、易于管理和安全选项的示例。因为您可以控制建立链接的方向,并且可以保护 JMS 流量和通常公开的 JMS 服务器端口,所以我认为这可能是一个很好的解决方案。

您使用什么 JMS 产品?

关于java - 防火墙后的 JMS 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7302148/

相关文章:

Spring JMS : each DefaultMessageListenerContainer deployment takes longer than one before

Java,为 LinkedList 创建插入函数以按升序添加所有插入的元素

java - SAX 解析器在换行后不读取

java - 当一个主题有超过 1 个消费者时,消息会随机到达且缺少数据

asynchronous - 异步 JMS 消息传递

java - 在 WebLogic 中配置 JMS 消息大小 : weblogic. socket.MaxMessageSizeExceededException

java - 消息驱动 Bean 读取同一消息两次

java - 将 BigDecimal 转换为 String,以便在 JPQL 查询中使用 LIKE 过滤某些 BigDecimal id

java - 将字节数组转换为字符串后,如何在 Java 中将换行符写入文件

java - Jena OWL/RDF FunctionalProperty