QX项目实战-17.同步业务逻辑说明

本文以一个消息服务器居中,作为消息中间件来描述本系统的运行情况,同时帮助理解ActiveMQ的运行机制。

1.业务流程

ActiveMQ服务器负责数据同步。各地区程序负责将本地修改数据传输到ActiveMQ服务器中。中心端程序负责从ActiveMQ服务器上获取消息,并在中心端进行同步处理,同时将中心端提交数据同步到各地区在ActiveMQ服务器中的消息队列中去。具体业务流程如下:

地区端到中心端:地区端到中心段需要完成三种同步任务。1、疑误信息提交同步,地区端提出的疑误信息,提交到ActiveMQ服务器中的消息队列中。2、疑误信息处理结果同步,对疑误信息的处理结果(疑误、错误、正确)信息提交到ActiveMQ服务器中。3、更正信息同步,对更正的信息提交到中心端消息服务器中。以上三类同步数据,由中心端程序读取并进行同步处理。流程图如下:


中心端到地区端:完成疑误同步流程。中心端提交的疑误信息,由程序发送到ActiveMQ服务器上相应地区份的消息队列中。相应地区份地区端程序接收消息服务器中本地区消息队列中的信息,同步到本地区疑误信息库中。流程图如下:


2.运行机制

消息中间件ActiveMQ居中,负责消息传递。地区端到中心端传递消息,进行同步的过程如下:

1)    初始化与ActiveMQ消息中间件的连接。载入必须的类包,初始化连接对象,与ActiveMQ服务器地址建立连接,建立代号为report的消息队列。

2)    传递消息。地区端在处理流程中,将待发送的同步信息自含上ID信息,交由ActiveMQ的发送方法,传递给ActiveMQ服务器中的report消息队列。

3)    中心端接收消息。中心端的WEB程序,执行接收操作,从ActiveMQ服务器的report队列中接收消息,存储在本地消息队列或者持久化对象中。

4)    解析并进行处理。从接收到的消息中解析语句,执行SQL语句,在中心端的数据库中进行同步重做。

中心端到地区端传递消息,进行同步的过程如下:

1)    初始化与ActiveMQ消息中间件的连接。载入必须的类包,初始化连接对象,与ActiveMQ服务器地址建立连接,建立代号为report的消息队列。

2)    传递消息到各地区消息队列。中心端提出的疑误信息,由程序解析成同步消息,交由ActiveMQ的发送方法,传递给ActiveMQ服务器中各地区的消息队列中,如B地区的消息队列为message_b。

3)    各地区取回本地区队列消息。各地区端的WEB程序,执行接收操作,从ActiveMQ服务器的本地区对应队列中接收消息。存储在本地消息队列或者持久化对象中。

4)    对消息进行解析和处理。地区端解析中心端同步过来的消息,解析出其中的疑误信息,进入本地疑误信息处理流程管理数据库。

3.程序示例

下面以中心端到地区端同步功能为例,以伪代码形式来说明实现流程。

1)  中心端代码

//建立ActiveMQ发送类对象
QueueSend qs = new QueueSend();
//初始化与ActiveMQ的连接,并建立发送到A的消息队列
qs.init_n2p("message_a");
//发送同步消息到ActiveMQ服务器的队列中
qs.sendMessage(sql);

2)   地区端代码

//建立ActiveMQ接收类对象
QueueReceive qr = new QueueReceive();
//接收ActiveMQ服务器中,中心端发给A队列的消息
qr.receiveMessage("message_a");
//对消息进行重做同步
execute(sql);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gongqingkui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值