WebLogic JMS的强大功能组合:UOW+SAF+分布式Queue

 

Weblogic 服务器提供了非常强大的JMS消息中间件平台,其性能优越,远超同类JMS产品比IBM 的MQ也快很多。并且,Weblogic JMS提供了非常强大的消息传递功能使得基于该平台的Java 消息解决方案非常的完整。本文,旨在阐述WebLogic JMS 服务器的一些比较重要的特性,以及如何配合在一起使用。

 

 

  1. 本文所要介绍的WebLogic JMS特性有:

DQ (Distributed Queue):分布式Queue。通过配置DQ可以提供消息队列的集群式部署,提高一个队列的Capacity以及提供HA支持。对于客户端透明。

SAF 存储转发:可以在两个WebLogic服务器(相同版本)之间,从一段发送JMS消息到另一端,并保证发送能到达终端的Destination。如果,两台服务器之间的网络连接暂不可用,则会将消息保存至发送方的本地存储中。用户可以设定多种转发策略和Qos设定。

UOW(Unit-Of-Work):WLS可以将多条消息标签为一个工作单元(UOW),只有当该UOW中所有的消息都被发送到队列中后,Consumer端才能获取该工作单元的所有消息。并且,所有属于该UOW的消息,保证只有一个Consumer能进行处理。

 

 

  1. 客户用例

在某家工厂构建的一个门店和总部数据中心系统之间的一个异步信息同步的解决方案中,采用了UOW+SAF+DQ的方式来传送大文件的切片,并在终端还原文件。由于文件被切片传送,因此,根据JMS 队列传输的原理,默认配置的JMS DQ会将文件切片分散接收在集群的各个节点的QUEUE上,并且每个节点上配置的消息驱动EJB(MDB)也不能保证只有一个实例能获取文件的全部切片,这样的默认行为令还原大文件切片变为一个需要在多个MDB之间协调完成的事务,处理过程复杂,效率也不高。并且通过SAF来克服在VPN网络环境中可能的各类异常,保证消息传递的质量。

 

       针对该用户的这种需求,提出的解决方案是使用UOW来将一个文件的切片打包为一个工作单元的方式来传送。

方案示意图如下:

 

上图中的UOW1、UOW2、UOW3表示的是代表一个大文件切片的一组/一个工作单元消息(多条)。大文件会先经过JAVA程序进行切片,然后通过JMS API和UOW的API来发送到一个本地的WebLogic服务器的队列上。本地队列被配置为通过SAF转发到远程的一个DQ中。远程的DQ接收到消息后,会根据UOW的ID来将一组消息(统一UOW ID的消息)作为一个整体,分配到集群中的某一个实例。在该集群中部署一个MDB EJB。该EJB的实例会收到属于一个文件的所有切片,然后进行还原处理。由于使用了UOW,可以保证每个文件的所有切片,有且只有一个MDB实例可以进行处理。

 

  1. 配置过程简述

 

  1. 首先安装远端WebLogic服务器并配置好集群。
  2. 分别创建三个JMS Server在三个集群节点上。
  3. 创建一个JMS Module,并在JMS Module中定义一个子部署target到cluster上。
  4. 创建一个Distributed Queue, target到定义好的子部署上,记得在高级配置区域中选择工作单元 (UOW) 消息处理策略为单个消息传递。 该配置启动UOW支持。
  5. 安装本地WebLogic服务器
  6. 创建SAF存储转发代理。
  7. 创建SAF导入目的地,并在SAF远程上下文定义中,配置远程集群的URL,例如:t3://172.16.100.1:7003,172.16.100.1:7004,172.16.100.1:7005。
  8. 配置子部署并将SAF导入目的地target到子部署上。

详细部署请参考WLS相关文档。

 

  1. 示例代码

UOW 发送:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值