J2Cache作为成熟的二级缓冲工具,非常好用,它有一项消息广播的参数配置(消息广播主要作为是当2级缓存发生crud时用来通知各使用的客户端以同步1级缓存),此参数可以配置为jgroups,redis,rabbitmq,rocketmq。redis当然可以用,私以为最好还是用mq来通知。
当j2cache.broadcast设置为rabbitmq时运行它的测试例程会有异常,怎么也连接不上rabbitmq,后来跟踪source发现连接参数需要配置一个virtualHost。没错,virtualHost没有默认值!但是rabbitmq有个默认的“/”啊,为什么ConnectionFactory就不默认了…而让人崩溃的是,J2Cache的官方配置里面也没有这个配置,所以就出异常了。
解决方法:
其实很简单,就在J2Cache的配置里面加上virtualHost,这里用rabbitmq默认的/好了,当然你可以新开一个。
跑了一下,顺利通过,rabbitmq控制台也能看到j2cache留下的exchange



