RabbitMQ 缺少消息一致性哈希

问题描述

我们有一个直接消费者,它根据 a 参数(下面的 vrn)处理来自队列的消息,然后写入另一个 quque。

我们已经看到这可以正常工作,但是任何时候重新启动或某些操作发生时消息未发布到由 CONSISTENT HASH EXCHANGE 管理的队列。基本上它们是从另一个队列中读取的,但不会发布到 CONSISTENT HASH EXCHANGE quques。

这种情况很少发生。有时有效,有时失败。我们尝试在每个步骤进行日志记录,但无法捕获消息丢失的 hpw。

        if (rabbitMQConnection != null && !rabbitMQConnection.IsOpen)
        {
            RMQConnectionManager.disposeRabbitMQConnection();
            rabbitMQConnection = RMQConnectionManager.CreaterabbitMQConnection();
            model = RMQConnectionManager.CreateModel(rabbitMQConnection);
        }


        if (model == null || model.IsClosed)
        {
            model = RMQConnectionManager.CreateModel(rabbitMQConnection);
        }

        foreach (string q in queues)
        {
            model.QueueDeclare(q,true,false,null);
        }
        bool durable = true;
        model.ExchangeDeclare(Exchange,CONSISTENT_HASH_EXCHANGE_TYPE,durable,null);

        foreach (string q in queues)
        {
            model.QueueBind(q,Exchange,"1");
        }
        model.ConfirmSelect();

        model.BasicReturn += Channel_BasicReturn;

        IBasicProperties properties = model.CreateBasicProperties();
        properties.DeliveryMode = deliveryMode;

        model.Basicpublish(Exchange,vrn,properties,msgBody);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)