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连接管理(三次握手四次握手)

使用 TLS,传输层是不是出现在 DNS 之后,并且在数据准备好添加 TCP 标头之后再次出现?

为啥 DNS 使用 UDP 作为传输层协议?

网络传输模型/TCP协议/IP地址

ActiveMQ 传输协议

TCP/IP网络知识