关于Failover协议的使用

1、Failover是所有协议之上的一个协议,所以其用法如下:

failover:(tcp://localhost:61616,tcp://10.88.112.165:61617)?randomize=false

或者

failover:()?randomize=false&updateURIsURL=file:/E:/emq-4.0.0-verify/to_removed/urlist.txt

/urlist.txt///begin

tcp://localhost:61616,tcp://10.88.112.165:61617

/urlist.txt///end//

1、 Failover协议仅用在JMS客户端和Broker间,不能用在broker和broker之间;

3、 failover方式跟消费者是异步还是同步接收没有关系。

4、 main方法中直接调用Failover失效的原因:根本原因:是因为没有可用的用户线程,导致JVM自动退出,因为main方法执行完后,会生成一个【DestroyJavaVM】的用户线程。

如果没有再没有其他用户线程的话,就轮到执行【DestroyJavaVM】的用户线程了,所以JVM会自动退出,导致failover切换失败。

5、 在main方法中合理使用failover协议,建议通过另起线程的方式消费消息;

6、 如果所有的用户线程终止,那JVM就会终止。

7、 使用文件记录uri列表的方式,具有很好的扩展性,因为客户端每次重连时都是从文件加载一次,所有可以随时从文件中更新uri列表。

[img]http://f.hiphotos.bdimg.com/album/pic/item/8718367adab44aed135f5b43b11c8701a18bfb00.jpg[/img]

[img]http://e.hiphotos.bdimg.com/album/pic/item/d000baa1cd11728bb33e6985cafcc3cec3fd2c02.jpg[/img]
[img]http://g.hiphotos.bdimg.com/album/pic/item/1ad5ad6eddc451da87fbe94cb4fd5266d0163203.jpg[/img]



用户线程和守护线程的区别:

>>Java中有两类线程,用户线程和守护线程;
>>通常,守护线程用来执行用户线程的的服务;
>>应用线程的main方法是一个用户线程;
>>由用户线程创建的线程是用户线程;
>>可以显式的将一个用户线程转化为守护线程,调用方法setDaemon(),需要在线程start之前调用;
>>判断一个线程是否是守护线程,通过方法isDaemon()来判断;
>>如果一个应用要持续运行,其必须要总至少保持有一个用户线程;
>>如果所有的用户线程终止,则JVM就会终止;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值