2016-08-04 13 views
3

私の設定でproblemsに直面していますが、可能な修正をテストするためにハートビート間隔を増やそうとしています。 私は春のウサギの心拍数を増やす

Spring boot 1.3.2.RELEASE 
Spring rabbit 1.5.3.RELEASE 

を使用していて、接続ファクトリをインスタンス化するコードは、問題がハートビート間隔が変化していないということである下記

RabbitConnectionFactoryBean connectionFactoryBean = new RabbitConnectionFactoryBean(); 
connectionFactoryBean.setUseSSL(useSsl); 
connectionFactoryBean.setHost(rabbitHostname); 
connectionFactoryBean.setVirtualHost(rabbitVhost); 
connectionFactoryBean.setUsername(rabbitUsername); 
connectionFactoryBean.setPassword(rabbitPassword); 
connectionFactoryBean.setConnectionTimeout(900000); 
connectionFactoryBean.setRequestedHeartbeat(900); 
connectionFactoryBean.afterPropertiesSet(); 

CachingConnectionFactory cf = new CachingConnectionFactory(connectionFactoryBean.getObject()); 
cf.setChannelCacheSize(40); 
return cf; 

です。私は、迅速なサーバーから値が(ハートビートを無効にしたり、それを増やすことはできません)メソッドnegotiatedMaxValueは、クライアントの好みを尊重しないであろう60です

以下
int heartbeat = negotiatedMaxValue(this.requestedHeartbeat, 
            connTune.getHeartbeat()); 


private static int negotiatedMaxValue(int clientValue, int serverValue) { 
     return (clientValue == 0 || serverValue == 0) ? 
      Math.max(clientValue, serverValue) : 
      Math.min(clientValue, serverValue); 
} 

を明らかAMQConnectionに見えます。何か不足していますか?

答えて

3

あなたは正しいですか? AMQConnectionは、そのメソッドに基づいてハートビート値を決定し、TuneOkメソッドでその値をサーバー(https://www.rabbitmq.com/amqp-0-9-1-reference.html#connection.tune-ok)に送信します。あなたは数行下にあなたがメソッドの呼び出しを参照どこから)それはnegotiatedMaxValue(の結果を送信見ることができます:あなたが唯一のハートビートを減らすことができ、コードのロジックに基づいて

_channel0.transmit(new AMQP.Connection.TuneOk.Builder() 
    .channelMax(channelMax) 
    .frameMax(frameMax) 
    .heartbeat(heartbeat) 
    .build()); 

それはそうするが、最大ハートビートはサーバーが送信したもので、それ以上には増加できません。 RabbitMQのドキュメントは、サーバーが最初に送信するハートビートを増やすことができるという点で少し曖昧です。https://www.rabbitmq.com/heartbeats.html

私は春のウサギの最新バージョンをチェックしましたが、それはすぐにいつでも変わるように見えません。

RabbitMQ GitHubを確認しても、ハートビート値をサーバーの送信値より大きく設定することに関する問題はありません。おそらくそこに問題を提出して、開発者が何を言っているのか見てみてください。 https://github.com/rabbitmq/rabbitmq-java-client/issues?utf8=%E2%9C%93&q=heartbeat

関連する問題