Rabbitmq 兔子铲冻结“运行”

Rabbitmq 兔子铲冻结“运行”,rabbitmq,Rabbitmq,我有一把兔子铲,我已经用了一段时间了 我有一台PC“192.168.7.1”,它正在从另一台PC“192.168.7.6”中清除消息。除非“192.168.7.6”重新启动,“192.168.7.1”上的电铲保持在运行状态,并且不再接收消息,也不再重新连接,否则此功能将正常工作。因此,消息只能无限期地缓冲在“192.168.7.6”上 以下是我的配置文件摘录,显示了电铲配置: [{rabbit, [{disk_free_limit, {mem_relative, 1.0}}]}, {rabbit

我有一把兔子铲,我已经用了一段时间了

我有一台PC“192.168.7.1”,它正在从另一台PC“192.168.7.6”中清除消息。除非“192.168.7.6”重新启动,“192.168.7.1”上的电铲保持在运行状态,并且不再接收消息,也不再重新连接,否则此功能将正常工作。因此,消息只能无限期地缓冲在“192.168.7.6”上

以下是我的配置文件摘录,显示了电铲配置:

[{rabbit, [{disk_free_limit, {mem_relative, 1.0}}]},
{rabbitmq_shovel,
    [ {shovels, [ {backbone_shovel,
                    [ {sources,
                        [ {brokers, [ "amqp://guest:guest@192.168.7.6"
                                    ]}
                        , {queue.declare, [
                                {queue, <<"backbone">>}
                                , durable
                                ]}
                        ]}
                    , {destinations,
                        [ {broker, "amqp://guest:guest@localhost"}
                        , {queue.declare, [
                                {queue, <<"backbone">>}
                                , durable
                                ]}
                        ]}
                    , {queue, <<"backbone">>}
                    , {ack_mode, on_confirm}                    
                    , {reconnect_delay, 5}
                    ]},

当目标死亡时,我如何强制电铲重新启动?

回答我自己的问题,以防其他人也有同样的问题


这个简单的解决方案是将铲子放在客户端PC“192.168.7.6”上,而不是服务器PC“192.168.7.1”。然后,如果客户端重新启动,电铲将重新启动。因此,铲子永远不会与客户端的状态不同步。

您运行的RabbitMQ版本是什么?我们使用QDB从客户端机器而不是铲子缓冲并向RabbitMQ发送消息。省去了在客户端运行Rabbit+更简单的配置+处理失败时的重播。
backbone_shovel 
running
type:   network
virtual_host:   /
host:   192.168.7.6
username:   guest
ssl:    false
type:   network
virtual_host:   /
host:   localhost
username:   guest
ssl:    false
2012-11-26 11:03:51