ActiveMQ 是不是使用 TCP 作为其传输层协议
Posted
技术标签:
【中文标题】ActiveMQ 是不是使用 TCP 作为其传输层协议【英文标题】:Does ActiveMQ uses TCP as its transport layer protocolActiveMQ 是否使用 TCP 作为其传输层协议 【发布时间】:2021-11-22 08:13:25 【问题描述】:我遇到了一个问题,我们与 ActiveMQ 5.13.3 的 WebSocket 连接突然终止。我想,我可能会使用 WireShark 来检查 TCP 层以寻找连接可能损坏的线索,但我不确定 ActiveMQ 使用 TCP 协议作为其传输层协议来发送消息。
【问题讨论】:
@JustinBertram,我正在使用 ActiveMQ 5.13.3 提供的 WebSocket 协议 我的回答是否解决了您的问题?如果是这样,请将其标记为正确,以帮助将来有同样问题的其他人。谢谢! 【参考方案1】:ActiveMQ 支持的所有类型的客户端和协议都使用 TCP 作为其传输层。 WebSockets 专门使用 TCP。
【讨论】:
【参考方案2】:ActiveMQ Broker 支持许多传输层协议,包括 TCP。
参考资料:
如果您使用的是 ActiveMQ Classic: https://activemq.apache.org/components/classic/
如果您使用 ActiveMQ Artemis: https://activemq.apache.org/components/artemis/
【讨论】:
据我所知,TCP 是任何受支持的客户端/协议使用的唯一传输层。哪些客户端/协议支持其他传输层? UDP 不可能吗? activemq.apache.org/maven/apidocs/org/apache/activemq/transport/… 技术上可以使用 UDP,但由于 UDP 不可靠,我从未真正见过它。 The documentation 甚至说,“请注意,默认情况下 UDP 不可靠;数据报可能会丢失,因此您应该添加一个可靠性层以确保 JMS 合同可以在不可靠的传输上实现。”当可以简单地使用 TCP 时,添加“可靠性层”是不切实际的。以上是关于ActiveMQ 是不是使用 TCP 作为其传输层协议的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络 王道考研2021 第五章:传输层 -- TCP连接管理(三次握手四次握手)