RabbitMQ流量控制不起作用(Java客户端)



我正在构建我的兔子(兔子3.6.5,erlang r16b03(连接:

ConnectionFactory factory = new ConnectionFactory();
factory.setHost(App.rabbitMQServer);
factory.setVirtualHost(App.rabbitVirtualHost);
factory.setRequestedHeartbeat(5);
factory.setConnectionTimeout(5000);
factory.setAutomaticRecoveryEnabled(true);        
factory.setNetworkRecoveryInterval(5000);
Map<String, Object> clientProperties = new HashMap<>();
Map<String, Object> capabilities = new HashMap<>();
capabilities.put("connection.blocked", true);
clientProperties.put("capabilities", capabilities);
factory.setClientProperties(clientProperties);
_connection = factory.newConnection();
_channel = _connection.createChannel();
_connection.addBlockedListener(new BlockedListener() {
    public void handleBlocked(String reason) throws IOException {               
        connectionIsBlocked = true;
        log.warn("RabbitMQ connection blocked");
    }
    public void handleUnblocked() throws IOException {
        connectionIsBlocked = false;
        log.warn("RabbitMQ connection unblocked");
    }
});        

在管理Web控制台中,连接看起来还不错 - 功能存在,但是blockedlistener方法从未调用。我想念什么?

顺便说一句,我还有另一个过程中编写的过程,也从未称呼其流侦听器...

flow := ch.NotifyFlow(make(chan bool))
go func() {
    for f := range flow {
        shouldFailoverToSQS = f
        log.Infof("Flow status changed")
    }
}()

i使blockedlistener和flowlistener(已弃用(混淆。

最新更新