1
kkk9 2023-10-04 19:19:49 +08:00
根据业务,日常的一般用 Publish/Subscribe 足够了
|
2
mbeoliero123 2023-10-04 19:51:41 +08:00
@kkk9 #1 大佬,问下,rabbit mq 怎么处理断连问题?
|
3
kkk9 2023-10-04 22:08:27 +08:00
@mbeoliero123 #2 哪儿断连,客户端?消费者?搞重连机制,怎么处理就看你怎么写的了,mq 不处理这些。
|
4
gav1nvv 2023-10-04 23:04:33 +08:00
@mbeoliero123 断连通常指的客户端断连,一般是 Client 处理的,通常会有重连次数或者等待时间。如果是 MQ crash 了通常需要使用集群。
|
5
mbeoliero123 2023-10-04 23:35:26 +08:00
|
6
UltraXiaoZi 2023-10-05 09:47:48 +08:00
@mbeoliero123 两种情况 主要针对 rabbitmq 的 connection 和发送端 消费端没有关系(这都是在通信协议上层 定的应用层指令)
mq 正常的重启 或者 意外停机 rabbitclient 都是有自动重连功能的 默认没有次数限制 一直到 mq 起来为止 如果是 mq 内存溢出造成的 mq 主动断开 重连三次之后会关闭连接 后续只能重启应用才能连上 具体的重连实现 可以看一下 autoreconnectlistener |
7
mbeoliero123 2023-10-05 14:46:26 +08:00
@UltraXiaoZi #6 看网上基本的实现都是开个 goroutine ,每隔几秒去做心跳检测
|
8
gav1nvv 2023-10-05 18:21:34 +08:00 via iPhone
@mbeoliero123 我司产品使用的 NTAS,有一次看官方包源码,默认底层维护了一个 Connection,每隔 2 秒进行心跳检测,默认为 60 次错误计数,2s*60=120 秒没有反应就会销毁 Connection ,不过会触发你实现的回调方法
|
9
mbeoliero123 2023-10-06 08:51:04 +08:00
@gav1nvv #8 感觉有点鸡肋,想 rocket mq 和 kafka 这些,都是底层封装好的断连重连机制,rabbit mq 还需要感知这些,增加业务开发的负担
|
11
ericcen OP 是每个用户都声明一个队列吗
|