CN108880779B - 一种基于redis消息通知的电文同步方法 - Google Patents
一种基于redis消息通知的电文同步方法 Download PDFInfo
- Publication number
- CN108880779B CN108880779B CN201810712706.9A CN201810712706A CN108880779B CN 108880779 B CN108880779 B CN 108880779B CN 201810712706 A CN201810712706 A CN 201810712706A CN 108880779 B CN108880779 B CN 108880779B
- Authority
- CN
- China
- Prior art keywords
- message
- redis
- baseline
- notification
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
Abstract
本发明公开了一种基于redis消息通知的电文同步方法。本发明以redis为存取数据库的基础上,充分利用其特有的键空间通知机制,使得系统简洁高效;本发明采用redis键空间通知机制来进行通知,处理速度快,实时性高;本发明处理流程简洁,对错误处理流程友好,系统不容易出现意外状况导致的系统卡顿,流程分支繁琐导致的计算流程出错等问题。
Description
技术领域
本发明涉及到cors站电文时间同步领域,尤其涉及到一种基于redis消息通知的电文同步方法。
背景技术
现有产品同步电文的方式可能是轮询等待的方式,这种方式会导致系统压力增大、处理速度变慢等问题;现有产品同步电文所采用的技术可能是传统数据库,不具备消息通知能力,需要额外的消息通知架构才能实现消息通知,这会增加系统开发复杂度,也一定程度增加了系统压力。
随着通讯技术的发展,redis提供了键空间通知机制,利用该机制,可以使得架构设计从传统的轮询等待方式改为通知机制;并且redis同时具备了数据库存储功能,已经消息通知功能,使得不需要额外的技术就能实现同步电文的功能,能够大幅降低了系统开发复杂度以及降低系统压力。
发明内容
针对上述cors站电文时间同步的技术问题,本发明的目的在于提供一种基于redis消息通知的电文同步方法,在实际场景中,多个cors站数据经过自身数据处理、网络传递等耗时操作到达服务器时,具有时间上的相差,并且时间差无法预估,不能简单等待、循环判断来解决电文时间同步问题。
为实现上述目的,本发明是根据以下技术方案实现的:
一种基于redis消息通知的电文同步方法,其特征在于,包括如下步骤:
步骤S1:接收服务器接收来自cors站传送的电文数据;
步骤S2:接收服务器将接收到的电文数据保存到redis数据库中,
步骤S3:redis数据库采用redis的键空间通知,将电文数据通过电文接收模块和基线解箅模块分离,实现电文同步;
步骤S4:redis数据库对用户发出解箅的通知,基线解箅模块收到通知后对电文数据进行解箅操作;
步骤S5:基线解箅模块将解箅的结果通过执行hset命令来保存到redis数据库;
步骤S6:redis数据库将解箅的结果传送到VRS服务器,VRS服务器生成VRS电文,然后通过网络发送到终端。
上述技术方案中,步骤S5中具体包括:
步骤S401:基线解箅模块订阅redis数据库的键空间频道,当redis数据库发出通知时,基线解箅模块接收到频道信息和消息,所述频道信息包含电文key,所述消息包含要执行的命令操作;
步骤S402:基线解箅模块从频道信息获取电文key,根据电文key获取电文,开始进行解箅操作。
上述技术方案中,所述消息通过redis数据库自动发布。
上述技术方案中,redis自动发布的消息中包含能够分类区分出cors站观测电文及sat导航电文,并区分出电文时间戳的信息,消息通知处理流程如下:
步骤S4011:redis发出通知,基线解箅模块收到通知后进行解箅流程;
步骤S4012:基线解箅模块首先判断该通知是cors主题还是sat主题,分别进行处理;
步骤S4013:对于sat主题消息,则更新星历,直接结束电文同步流程;
步骤S4014:对于cors主题消息,则判断是否能获取到该基线解箅模块中另一站同一时间戳的电文,如不能,则同步失败,继续同步;如能获取到,则同步成功;
步骤S4015:同步成功后,将基线解箅模块包含的两个cors站所有卫星系统的电文数据必要的信息,传给基线解箅模块的接口做运算。
本发明与现有技术相比,具有如下有益效果:
本发明在以redis为存取数据库的基础上,充分利用其特有的键空间通知机制,使得系统简洁高效;采用redis键空间通知机制来进行通知,处理速度快,实时性高;本发明处理流程简洁,对错误处理流程友好,系统不容易出现意外状况导致的系统卡顿,流程分支繁琐导致的计算流程出错等问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1为本发明的一种基于redis消息通知的电文同步方法的服务架构示意图;
图2为本发明的电文接收模块和基线解箅模块通过消息通知的交互示意图;
图3为本发明的基线解箅模块进行解箅操作细节的示意图;
图4为本发明的消息通知处理流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
如图1所示,本发明的一种基于redis消息通知的电文同步方法,包括如下步骤:
步骤S1:接收服务器接收来自cors站传送的电文数据;
步骤S2:接收服务器将接收到的电文数据保存到redis数据库中,
步骤S3:redis数据库采用redis的键空间通知,将电文数据通过电文接收模块和基线解箅模块分离,实现电文同步;
步骤S4:redis数据库对用户发出解箅的通知,基线解箅模块收到通知后对电文数据进行解箅操作;
步骤S5:基线解箅模块将解箅的结果通过执行hset命令来保存到redis数据库;
步骤S6:redis数据库将解箅的结果传送到VRS服务器,VRS服务器生成VRS电文,然后通过网络发送到终端。
步骤S3中,本发明为了降低电文同步过程中消息发布者和消息订阅者之间的耦合度,采用了redis的键空间通知,将电文接收模块和基线解箅模块分离。消息的发布由redis系统自动实现,而用户只需要接收redis的通知,获取电文数据进行基线解箅。基线解箅模块和电文数据接收模块通过redis的键空间通知进行交互,如图2所示,首先基线解箅模块订阅redis消息通知,接着电文接收模块将电文数据保存到redis时,redis会发送键空间通知给基线解箅模块,最后基线解箅模块根据通知内容,去获取电文数据,完成电文接收模块到基线解箅模块之间的电文信息传递。
在电文同步过程中,接收模块只负责向redis数据库中保存电文数据,而不用关心基线解箅模块。基线解箅模块需要根据键空间通知从redis数据库中获取电文数据进行解箅,从而将接收与解箅分离,实现电文同步。当接收模块接收到cors站的电文信息保存到redis数据库中时,redis会对订阅了该消息的订阅者发出通知,基线解箅模块收到通知后会进行解箅。主要流程如下图3所示,电文接收模块仅与redis进行交互,将接收到的电文通过hset指令存储到redis中,基线解箅模块也同样仅与redis进行交互,redis会主动通知基线解箅模块。redis即为电文接收模块与基线解箅模块交互的中间层,降低模块间耦合。
本发明由于通过执行hset命令来保存电文数据,由于执行hset操作导致redis的数据空间发生了改变,redis会产生hset通知。
本发明的步骤S4中具体包括:
步骤S401:基线解箅模块订阅redis数据库的键空间频道,当redis数据库发出通知时,基线解箅模块接收到频道信息和消息,所述频道信息包含电文key,所述消息包含要执行的命令操作;
步骤S402:基线解箅模块从频道信息获取电文key,根据电文key获取电文,开始进行解箅操作。
此外,本发明的消息通过redis数据库自动发布。如图4所示,redis自动发布的消息中包含能够分类区分出cors站观测电文及sat导航电文,并区分出电文时间戳的信息,消息通知处理流程如下:
步骤S4011:redis发出通知,基线解箅模块收到通知后进行解箅流程;
步骤S4012:基线解箅模块首先判断该通知是cors主题还是sat主题,分别进行处理;
步骤S4013:对于sat主题消息,则更新星历,直接结束电文同步流程;
步骤S4014:对于cors主题消息,则判断是否能获取到该基线解箅模块中另一站同一时间戳的电文,如不能,则同步失败,继续同步;如能获取到,则同步成功;
步骤S4015:同步成功后,将基线解箅模块包含的两个cors站所有卫星系统的电文数据必要的信息,传给基线解箅模块的接口做运算。
根据本发明的一个具体实施例主要包括如下:构建redis集群,redis实例中配置键空间通知机制;将接收到的cors站数据存储到redis中;处理数据的模块,通过配置redis监听,收到数据更新消息;采用常用设计模式——观察者模式,将数据更新的消息发给具体的处理逻辑,每个处理逻辑会监听多个消息,只有满足计算条件才会进行运算。
其试验结果为:redis提供的键空间通知功能能够满足实时性要求,利于解耦数据接收系统与数据处理架构之间的关系,并且接收模块程序代码中并不需要进行消息的通知的发出,只需要存入数据即可,通知的发出有redis负责。数据处理模块则通过配置监听器,redis将数据消息通知给观察者,实现模块间的分离。数据处理模块内部通过观察者模式,再次将数据分析整合,成功完成数据接入到整合处理,得出最终结果的整个流程。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (1)
1.一种基于redis消息通知的电文同步方法,其特征在于,包括如下步骤:
步骤S1:接收服务器上运行电文接收模块软件程序,通过网络接收来自cors站传送的电文数据;
步骤S2:接收服务器将接收到的电文数据保存到redis数据库中,
步骤S3:redis数据库采用redis的键空间通知,将电文数据通过电文接收模块和基线解算模块分离,实现电文同步;
步骤S4:redis数据库发出电文已存储入库的通知,基线解算模块收到通知后对redis中的电文数据进行读取并进行解算操作;
步骤S5:基线解算模块将解算的结果通过执行hset命令来保存到redis数据库;
步骤S6:redis数据库将解算的结果传送到VRS服务器,VRS服务器生成VRS电文,然后通过网络发送到终端;
其中步骤S4中具体包括:
步骤S401:基线解算模块订阅redis数据库的键空间频道,当redis数据库发出通知时,基线解算模块接收到频道信息和消息,所述频道信息包含电文key,所述消息包含要执行的命令操作;
步骤S402:基线解算模块从频道信息获取电文key,根据电文key获取电文,开始进行解算操作;
所述消息通过redis数据库自动发布,而redis数据库自动发布的消息中包含能够分类区分出cors站观测电文及sat导航电文,并区分出电文时间戳的信息,消息通知处理流程如下:
步骤S4011:redis发出通知,基线解算模块收到通知后进行解算流程;
步骤S4012:基线解算模块首先判断该通知是cors主题还是sat主题,分别进行处理;
步骤S4013:对于sat主题消息,则更新星历,直接结束电文同步流程;
步骤S4014 :对于cors主题消息,则判断是否能获取到该基线解算模块中另一站同一时间戳的电文,如不能,则同步失败,继续同步;如能获取到,则同步成功;
步骤S4015:同步成功后,将基线解算模块包含的两个cors站所有卫星系统的电文数据必要的信息,传给基线解算模块的接口做运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810712706.9A CN108880779B (zh) | 2018-06-29 | 2018-06-29 | 一种基于redis消息通知的电文同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810712706.9A CN108880779B (zh) | 2018-06-29 | 2018-06-29 | 一种基于redis消息通知的电文同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108880779A CN108880779A (zh) | 2018-11-23 |
CN108880779B true CN108880779B (zh) | 2021-12-10 |
Family
ID=64296633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810712706.9A Active CN108880779B (zh) | 2018-06-29 | 2018-06-29 | 一种基于redis消息通知的电文同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108880779B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113450171A (zh) * | 2020-03-27 | 2021-09-28 | 北京沃东天骏信息技术有限公司 | 一种订单处理方法和装置 |
CN115934848A (zh) * | 2023-03-02 | 2023-04-07 | 中国科学院沈阳计算技术研究所有限公司 | 基于redis的工业控制与虚拟电厂实时交互控制系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010047532A2 (en) * | 2008-10-22 | 2010-04-29 | Electronics And Telecommunications Research Institute | Apparatus and method for controlling conversion of broadcasting program based on program protection information |
CN104881494A (zh) * | 2015-06-12 | 2015-09-02 | 北京奇虎科技有限公司 | 与Redis服务器进行数据同步的方法、装置和系统 |
CN106789967A (zh) * | 2016-12-05 | 2017-05-31 | 国网浙江省电力公司电力科学研究院 | 一种多源网络安全事件的采集与同步方法 |
CN107330035A (zh) * | 2017-06-26 | 2017-11-07 | 努比亚技术有限公司 | 一种数据库中操作日志同步方法、移动终端以及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2095882A1 (en) * | 1992-06-04 | 1993-12-05 | David O. Anderton | Voice messaging synchronization |
JP5122890B2 (ja) * | 2007-09-06 | 2013-01-16 | 株式会社日立製作所 | 通信システム及びその装置 |
US20160192308A1 (en) * | 2014-08-11 | 2016-06-30 | Dylan Elliot Turney | Mobile Device Synchronization of Screen Content and Audio |
US9894154B2 (en) * | 2014-10-11 | 2018-02-13 | Papaya Mobile, Inc. | Data synchronization methods and systems |
-
2018
- 2018-06-29 CN CN201810712706.9A patent/CN108880779B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010047532A2 (en) * | 2008-10-22 | 2010-04-29 | Electronics And Telecommunications Research Institute | Apparatus and method for controlling conversion of broadcasting program based on program protection information |
CN104881494A (zh) * | 2015-06-12 | 2015-09-02 | 北京奇虎科技有限公司 | 与Redis服务器进行数据同步的方法、装置和系统 |
CN106789967A (zh) * | 2016-12-05 | 2017-05-31 | 国网浙江省电力公司电力科学研究院 | 一种多源网络安全事件的采集与同步方法 |
CN107330035A (zh) * | 2017-06-26 | 2017-11-07 | 努比亚技术有限公司 | 一种数据库中操作日志同步方法、移动终端以及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
《 航天大数据平台数据订阅系统设计与实现》;邵枫;《万方数据知识服务平台》;20170526;全文 * |
《Towards Scalable and Reliable In-Memory Storage System: A Case Study with Redis》;Shanshan Chen. et al.;《2016 IEEE Trustcom/BigDataSE/ISPA》;20170209;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108880779A (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542865B (zh) | 分布式集群系统配置文件同步方法、装置、系统及介质 | |
CN110858850B (zh) | 一种轨道交通系统综合网管方法、装置及系统 | |
CN108076098B (zh) | 一种业务处理方法及系统 | |
CN106371932B (zh) | 一种基于zookeeper的信息配置方法及装置 | |
CN109819048B (zh) | 数据同步方法、装置、终端及存储介质 | |
CN110309161B (zh) | 一种数据同步方法、装置及服务器 | |
CN108657237B (zh) | 一种iscs集成ats系统的方法及装置 | |
CN102866925B (zh) | 一种中间件与用户界面的通信方法和系统 | |
CN108880779B (zh) | 一种基于redis消息通知的电文同步方法 | |
CN112069265A (zh) | 配置数据的同步方法、业务数据系统、计算机系统和介质 | |
CN107181805B (zh) | 一种在微服务架构下实现全局有序重演的方法 | |
CN108170832B (zh) | 一种面向工业大数据的异构数据库的监控系统及监控方法 | |
US20200097355A1 (en) | Method and apparatus for outputting information | |
CN117130730A (zh) | 面向联邦Kubernetes集群的元数据管理方法 | |
CN102479082A (zh) | 客户端界面信息的提供方法、系统和客户端界面生成装置 | |
CN111708659B (zh) | 一种基于kubernetes构建云原生容灾架构的方法 | |
CN104113594A (zh) | 一种基于js上传组件的文件上传方法及系统 | |
CN106713464B (zh) | 一种企业服务总线的服务管理方法及装置 | |
CN108234608A (zh) | 一种电网erp系统与第三方系统间的数据同步方法 | |
WO2017152711A1 (zh) | 信息传输、发送、获取方法和装置 | |
CN103546433A (zh) | 信息同步系统和方法 | |
CN111541759A (zh) | 一种云平台通信系统及其通信方法 | |
CN107197009B (zh) | 一种基于WebLogic集群的应用自动发布方法及装置 | |
CN110716981A (zh) | 一种数据订单同步的实现方法及装置 | |
CN105610595B (zh) | 一种故障数据获取系统和远程设备控制系统及其对应方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |