以前使用JMS,都是单机版,只要配了JMS Server,JMS module,JMS Queue就可以用了,现在在cluster环境中使用JMS,Queue的进出端都变成了cluster环境,多了一些要配置的东西:
假设weblogic 集群已经建立,分别为A和B1. 登录weblogic admin console
2. 在Services->Messaging->JMS Servers,为每个weblogic server建立一个JMS server(JMS Server可以理解为提供JMS Server的线程),JMS Server --> target to weblogic instance (usually one to one)
3. 在Services->Messaging->JMS module,为A和B两个集群分别建立自己的JMS module,2个JMS modlue分别target到集群A和B.
4. 在集群JMS module里面,创建JMS connectionFactory和Queue,通过统一的jndi访问connectionFactory和Distributed Queue
4.1 建立connectionFactory,指定jndi的名字,建立subdeployment,target到A集群里面的所有weblogic server
4.2 建立集群Queue
4.2.1 选择自己为每个JMS server建立queue
4.2.1.1 为集群里面的每个weblogic server的JMS Server,建立Queue:指定jndi名字,JMS Queue 通过 subdeployment target到 JMS server
4.2.1.2 建立Distributed Queue,指定jndi名字, 自动target到对应集群里面所有的queue
4.2.2 选择weblogic自动为每个jms server建立queue
4.2.2.1 直接建立Distributed Queue,指定jndi名字, weblogic会建立uniform Distributed Queue,自动为集群里所有的JMS建立对应的Queue
5.1 在Services->Messaging->JMS bridget->JMS Bridge Destinations,为每个JMS建立自己的destination,注意Connection Factory JNDI Name是集群的,而Destination JNDI Name应该指向每个JMS的Queue而不是Distributed Queue。
5.2 在Services->Messaging->JMS bridget,建立交叉bridge,实现A和B中所有JMS server互相之间有bridge,并且小心指定source和target destination保证消息从B集群JMS发到A集群JMS
这里对消息的流量控制,持久性存储,消息类型压缩,消息确认模式,消息选择器,过期消息策略,消息顺序(多条消息按顺序到达)没有涉及,以后慢慢补充。
更多细节可以参考以下link:
Weblogic JMS basic usage:http://url.cn/KToSNb
JMS bridge and destination is not included here. WebLogic JMS Cluster 测试 - helloweblogic的日志 - 网易博客 http://url.cn/7EfYtM