JMS入门(三)点对点消息传送模型示例

本文介绍了一种点对点模型在贷款审批流程中的应用,详细阐述了QBorrower如何将贷款申请发送给RequestQueue队列,QLender根据工资和贷款额决定是否给予贷款,并使用ReplyQueue接收结果。同时展示了如何使用ActiveMQ启动服务并进行消息传递,以及通过负载均衡实现消息的均匀分布。

一、点对点模型

当你只需要将消息发送给唯一的一个消费者时,就应该使用点对点模型,并且这是个高可靠的模型。
我们用一个贷款示例来演示这种模型


QBorrower 类将贷款申请发送给 RequestQueue 队列,并且使用 ReplyQueue 队列从 QLender 类中接收结果
QLender  要根据  QBorrower  提供的工资和贷款额来确定是否给予贷款,若贷款额低于200000,则最多可贷款4倍于工资的金额,若贷款额大于200000,则最多可贷款10/3 倍工资的贷款额:

MapMessage msg = (MapMessage) message;
   double salary = msg.getDouble("Salary");
   double loanAmt = msg.getDouble("LoanAmount");
   // 决定是否接收或拒绝贷款申请
   if (loanAmt < 200000) {
    accepted = (salary / loanAmt) > .25;
   } else {
    accepted = (salary / loanAmt) > .33;
   }

二、模型示例

我已经准备好了示例和编译、运行脚本,你只需要启动 ActiveMQ,然后依次运行 compile.bat,runQBorrower.bat 和 runQLender.bat 即可
启动后结果如下:

下面我们在 QBorrower 中输入工资和贷款额:


看到 QLender 接受了第一次申请,拒绝了第二次申请

三、使用多个接收者实现负载均衡

即使有多个消费者在队列中侦听同一消息,也只有一个消费者线程会接收到消息,JMS提供者会使用负载均衡在消费者中均匀发布消息,再运行一次

runQLender.bat 来添加一个侦听者,可以看到 JMS提供者通过负载均衡来分发消息:



点对点模型示例



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值