Ole*_*ski 12 heartbeat rabbitmq
java的原生rabbitmq客户端允许在连接设置上设置心跳,例如:
import com.rabbitmq.client.ConnectionFactory;
...
ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.setAutomaticRecoveryEnabled(true);
connectionFactory.setHost("some://host");
connectionFactory.setConnectionTimeout(5000);
connectionFactory.setRequestedHeartbeat(5); // keeps an idle connection alive
Run Code Online (Sandbox Code Playgroud)
Rabbitmq客户端使用心跳设置做什么?它是否向特殊交换/队列发送存根消息或者其他什么?
有人可以详细解释一下吗?
Der*_*ley 10
网络可能在许多方面失败,有时非常微妙(例如,高比率丢包).中断的TCP连接需要相当长的时间(例如,在Linux上使用默认配置大约需要11分钟)才能被操作系统检测到.AMQP 0-9-1提供心跳功能,以确保应用程序层及时发现中断的连接(以及完全没有响应的对等体).心跳还可以防御可能终止"空闲"TCP连接的某些网络设备.
这不是对队列或存根消息的请求.这是一个TCP/IP连接,其中包含以心跳的特定格式发送的数据包.
如果您需要真实的细节,您可以阅读AMQP 0.9.1规范,第4.2.1和4.2.7节,以及有关RabbitMQ如何纠正规范中错误的勘误表.
| 归档时间: |
|
| 查看次数: |
13472 次 |
| 最近记录: |