我有这个uri
string address = "failover:(tcp://10.127.31.6:5616,tcp://10.128.22.31.5:5616,tcp://10.129.22.33.5)?randomize=false";
_connectionFactory = new ConnectionFactory(address);
故障转移工作正常,但我怎么知道或找出我在c#中连接的ip?
答案 0 :(得分:0)
您必须将Connection转换为Apache.NMS.ActiveMQ.Connection类型,然后您才能访问其Transport属性。从传输中,您可以通过属性访问器检索远程URI。请注意,由于您使用的是故障转移,因此如果未连接,此属性可以返回null。
IConnection接口定义了ConnectionInterripted和ConnectionResumed的事件点,它允许您知道何时成功建立连接,此时您可以检查传输以获取连接的远程URI。
答案 1 :(得分:0)
故障转移:(tcp:// primary:61616,tcp:// secondary:61616)?randomize = false
故障转移传输默认情况下随机选择一个URI。这样可以有效地平衡多个代理上的客户端负载。但是,要使客户端首先连接到主备份代理,并且仅在主代理不可用时才连接到辅助备份代理,请设置randomize = false。