Spring AMQP 和 CachingConnectionFactory
Spring AMQP and CachingConnectionFactory
如果我有一个带有两个地址的 CachingConnectionFactory,我如何随时知道我连接到哪个服务器?手动从一个更改为另一个的最佳方法是什么?
CachingConnectionFactory cf = new CachingConnectionFactory(factory);
String _addresses = host + ":" + port + "," + host2 + ":" + port2;
cf.setAddresses(_addresses);
谢谢
要知道你连接的 host/port
你应该已经咨询了目标 NetworkConnection
:
/** Retrieve address of peer. */
InetAddress getAddress();
/** Retrieve port number of peer. */
int getPort();
那不是 CachingConnectionFactory
来控制该信息。
另一方面,addresses
选项正是关于这个:
* @param addrs an array of known broker addresses (hostname/port pairs) to try in order
见com.rabbitmq.client.ConnectionFactory#createConnection()
。
因此,所有地址条目必须在同一簇中。否则,当同一名称可能用于不同服务器上的不同实体时,您可能会出现意外行为。
要手动控制,我建议在运行时更改 setAddresses()
属性 或使用不同顺序的不同 CachingConnectionFactory
实例。
如果我有一个带有两个地址的 CachingConnectionFactory,我如何随时知道我连接到哪个服务器?手动从一个更改为另一个的最佳方法是什么?
CachingConnectionFactory cf = new CachingConnectionFactory(factory);
String _addresses = host + ":" + port + "," + host2 + ":" + port2;
cf.setAddresses(_addresses);
谢谢
要知道你连接的 host/port
你应该已经咨询了目标 NetworkConnection
:
/** Retrieve address of peer. */
InetAddress getAddress();
/** Retrieve port number of peer. */
int getPort();
那不是 CachingConnectionFactory
来控制该信息。
另一方面,addresses
选项正是关于这个:
* @param addrs an array of known broker addresses (hostname/port pairs) to try in order
见com.rabbitmq.client.ConnectionFactory#createConnection()
。
因此,所有地址条目必须在同一簇中。否则,当同一名称可能用于不同服务器上的不同实体时,您可能会出现意外行为。
要手动控制,我建议在运行时更改 setAddresses()
属性 或使用不同顺序的不同 CachingConnectionFactory
实例。