Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >错过客户端的心跳,超时:30秒- RabbitMQ

错过客户端的心跳,超时:30秒- RabbitMQ
EN

Stack Overflow用户
提问于 2018-05-31 00:20:54
回答 1查看 5K关注 0票数 6

我用rabbitmq做酒吧/潜艇。我有两个微服务,通过rabbitmq交换彼此通信.微service1发布一些数据,而微service2则使用它。出版和订阅率非常低,每天大约100次。rabbitmq随机抛出“客户端错过的心跳,超时:30”。这就是我的应用程序错误作为“队列关闭”的原因。每当我重新启动队列时,服务就能够使用它并开始工作。

我正在使用码头和节点进行微服务。以及用于实现https://www.npmjs.com/package/rabbot rabbitmq的npm包。

这是我的rabbitmq config

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "connection": {
    "server": [
      "rabbitmq"
    ],
    "port": 5672,
    "vhost": "%2f",
    "timeout": 4000,
    "waitMin": 10000,
    "waitIncrement": 3000
  },
  "exchanges": [
    {
      "name": "save-customer",
      "type": "topic",
      "persistent": true,
      "autoDelete": true
    },
    {
      "name": "poison-ex",
      "type": "direct",
      "persistent": true,
      "durable": true,
      "autoDelete": true
    }
  ],
  "queues": [
    {
      "name": "save-customer-q",
      "autoDelete": true,
      "subscribe": true,
      "deadLetter": "poison-ex"
    },
    {
      "name": "poison-q",
      "noAck": false,
      "autoDelete": false,
      "durable": true,
      "poison": true
    }
  ],
  "bindings": [
    {
      "exchange": "save-customer",
      "target": "save-customer-q",
      "keys": [
        "send-customer-data"
      ]
    },
    {
      "exchange": "poison-ex",
      "target": "poison-q",
      "keys": []
    }
  ]
}

以下是rabbitmq服务器的日志

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@ALIPL5126:/opt/hos-customer-service# docker logs opt_rabbitmq_1
2018-05-31 07:09:25.438 [warning] <0.26747.0> closing AMQP connection <0.26747.0> (192.168.16.5:45180 -> 192.168.16.2:5672):
missed heartbeats from client, timeout: 30s
EN

回答 1

Stack Overflow用户

发布于 2020-01-15 02:44:29

根据配置文档他们的心跳文章,您可以尝试两个选项:

  1. 禁用心跳,这是高度劝阻(c),但肯定会工作。
  2. 增加配置中的默认心跳时间,例如3600 (秒,等于1小时)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50619784

复制
相关文章
Netty心跳处理以及读写超时设置
ChannelInboundHandlerAdapter里的userEventTriggered方法可以监听Netty服务器的所有事件
名字是乱打的
2021/12/22
2.6K0
Netty心跳处理以及读写超时设置
Netty 超时机制及心跳程序实现
本文介绍了 Netty 超时机制的原理,以及如何在连接闲置时发送一个心跳来维持连接。
马士兵的朋友圈
2020/09/08
1.8K0
pika missed heartbeats from client timeout 60s 的问题
【问题场景】 客户端以 consumer 身份订阅到 rabbitmq server 上的 queue 上,客户端侧在 AMQP 协议的 Connection.Tune-Ok 信令中,设置 heartbeat 为 0,即要求服务器侧不启用 heartbeat 功能。服务器由于异常断电原因停止服务,结果客户端在短时间内无法感知到服务器端已经异常。
周小董
2019/03/25
4.8K0
RabbitMQ实现商城订单超时处理
DLXMessage是一个消息封装对象,很关键,发送延迟队列时,先把消息存在此对象中,在加上目的地队列名称,然后再发到死信队列中,当消息超时时,转发到转发队列,添加对转发队列的监听,消费转发队列,获取需要延迟发送的信息,该信息就是DLXMessage对象,这样就拿到了目的地队列名称,然后再发送一次消息,就完成了延迟队列的发送。
程序员小明
2019/11/01
5K0
RabbitMQ消息超时时间、队列消息超时时间、队列超时时间
TTL是 Time-To-Live 的缩写,指的是存活时间,RabbitMQ可以为每个队列设置消息的超时时间。
似水的流年
2019/12/05
7.6K0
RabbitMQ GUI客户端工具(RabbitMQ Assistant)
RabbitMQ 是一个开源消息代理软件(有时称为面向消息的中间件),它最初实现了高级消息队列协议 (AMQP),后来扩展了一个插件架构以支持流式文本消息传递协议 (STOMP) 、MQ 遥测传输 (MQTT) 和其他协议。 RabbitMQ 服务器用 Erlang 编写。
用户3871926
2022/07/23
5K1
RabbitMQ GUI客户端工具(RabbitMQ Assistant)
[PHP] socket客户端时的超时问题
$sock=stream_socket_client("www.google.com:80", $errno,$errstr,2); 那个数字是连接超时 ,比如连接google , 2秒就返回错误 , 这样就不会一直等在那了
唯一Chat
2019/12/19
2K0
RabbitMQ 的 Heartbeat 总结
heartbeat通常用来检测通信的对端是否存活(未正常关闭socket连接而异常crash)。其基本原理是检测对应的socket连接上数据的收发是否正常,如果一段时间内没有收发数据,则向对端发送一个心跳检测包,如果一段时间内没有回应则认为心跳超时,即认为对端可能异常crash了。
星哥玩云
2022/06/29
2K0
RabbitMQ 的 Heartbeat 总结
服务端和客户端心跳包机制
服务端收到之后之后,更新对应连接的最后心跳时间,同时每个连接中还有checkConnect的检测超时线程,如果当前时间-最后心跳时间>心跳间隔,则感知到客户端断开连接了,服务端的代码如下
opencode
2022/12/26
9310
如果设置Redis客户端的超时时长?
客户端的超时时长分连接超时和读写超时,如果是基于hiredis的实现,则读写超时是合在一起的,同一参数控制。
一见
2019/08/30
4.1K0
RabbitMQ 消息确认超时:原因与解决方案
RabbitMQ 是一款高效、可靠的开源消息队列系统,被广泛用于在分布式系统中解耦应用,确保数据的一致性。然而,在使用RabbitMQ的过程中,我们可能会遇到各种各样的问题。本文将重点探讨一种常见的问题:消费者在等待消息确认时超时。
运维开发王义杰
2023/08/10
6.6K0
RabbitMQ 消息确认超时:原因与解决方案
死信队列实现订单超时代码实例(RabbitMq)
前面介绍了RabbitMq的几种模式,这篇文章主要介绍死信队列的使用和实际应用场景订单超时怎么和死信队列结合。
用户9919783
2022/07/29
5230
CAS单点登录-关于服务器超时以及客户端超时的分析 (十)
一般情况下,当用户登录一个站点后,如果长时间没有任何动作,当用户再次单击时,会被强制登出并跳转到登录页面,提醒用户重新登录。
用户1212940
2022/04/13
3.9K0
rabbitmq学习笔记
建议看下美团分享的rabbitmq基础:http://mp.weixin.qq.com/s/OABseRR0BnbK9svIPyLKXw
保持热爱奔赴山海
2019/09/18
8940
rabbitmq学习笔记
HDFS 客户端读写超时时间解析
前段我们Hadoop集群磁盘使用率比较高,部分硬盘空间使用超过了70%,这部分服务器的DataNode服务读写负载就比较高,造成部分数据同步任务因为读写超时而失败。具体场景和异常跟这篇博客里描述的很像。
九州暮云
2020/10/29
4.3K0
RabbitMQ实战:居然有这么多骚操作!
RabbitMQ的Java客户端统一使用com.rabbitmq.client作为顶级包名。其中,最核心的类主要有:ConnectionFactory、Connection、Channel、Consumer、DefaultConsumer、BasicProperties。需要说明的是,本文不只是教你RabbitMQ客户端的基本玩法,还有一些你可能不知道的一些骚操作。
Bug开发工程师
2020/07/06
2.5K0
RabbitMQ实战:居然有这么多骚操作!
JavaHTTP心跳:服务器与客户端实时连接的实现方式
在网络通信中,实时连接是一种至关重要的功能。它允许服务器与客户端之间保持持久的通信信道,实现快速、高效的数据传输。对于Java开发者来说,实现服务器与客户端之间的实时连接可以通过JavaHTTP心跳技术来实现。本文将介绍如何利用JavaHTTP心跳来实现服务器与客户端之间的实时连接。
用户10354340
2023/08/07
5560
Fix SSH客户端登录会话超时设置
通常默认公有云上的ECS远程连接,很容易断开,当你有什么事情被打断或者去操作别的机器同步做点其他事情,你会发现你SSH客户端登录窗口经常会断开掉,非常烦人,经常要重新登录。
后场技术
2020/09/03
5.6K0
Fix SSH客户端登录会话超时设置
netty 3多客户端连接与心跳断开重连 顶
netty服务端 package com.netty.test3; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipelineFactory; import org.jboss.netty.chan
算法之名
2019/08/20
1.7K0
封装RabbitMQ.NET Library 的一点经验总结
王清培
2018/01/05
1.3K0
封装RabbitMQ.NET Library 的一点经验总结

相似问题

RabbitMQ心跳与连接排出事件超时

11

RabbitMQ客户端是否必须请求心跳超时,还是服务器默认为60?

10

CouchDB心跳超时

20

RabbitMQ忽略配置“心跳”规则

17

如何让rabbitmq客户端超时?

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文