一种通讯系统、方法及装置转让专利

申请号 : CN202010926962.5

文献号 : CN111800519A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱辉王勇辛存生阎志军沈桐李一萌李曦欧阳鹏杨鹏飞钱晓飞

申请人 : 国网汇通金财(北京)信息科技有限公司国网电子商务有限公司国网雄安金融科技集团有限公司国家电网有限公司

摘要 :

本发明公开了一种通讯系统、方法及装置,该系统包括:第一终端、第一消息队列、数据库、第二终端和第二消息队列,其中,第一终端发送第一终端的第一请求,第一请求包括:读取或者写入请求;第一消息队列接收第一终端的第一请求并对第一请求进行处理;数据库存储第一终端和第二终端发送的数据;第二终端发送第二终端的第二请求,第二请求包括:读取或者写入请求;第二消息队列接收第二终端的第二请求并对第二请求进行处理。上述的系统中,数据库不再与第一终端和第二终端进行交互,在数据库和终端之间加入了消息队列,即便数据库发生改变,也只需要对消息队列进行简单调整,不需要调整终端,降低了终端和数据库的耦合程度,有利于系统的稳定。

权利要求 :

1.一种通讯系统,其特征在于,包括:第一终端、第一消息队列、数据库、第二终端和第二消息队列,其中,所述第一终端,用于发送所述第一终端的第一请求,其中,所述第一请求包括:读取或者写入请求;

所述第一消息队列,用于接收所述第一终端的第一请求并对所述第一请求进行处理;

所述数据库,用于存储所述第一终端和所述第二终端发送的数据;

所述第二终端,用于发送所述第二终端的第二请求,其中,所述第二请求包括:读取或者写入请求;

所述第二消息队列,用于接收所述第二终端的第二请求并对所述第二请求进行处理。

2.根据权利要求1所述的系统,其特征在于,还包括:强隔离装置,其中,所述强隔离装置,用于将第一网络和第二网络进行隔离,其中,所述第一网络包括:所述第一终端、所述第一消息队列和所述数据库,所述第二网络包括:所述第二终端和所述第二消息队列。

3.根据权利要求1所述的系统,其特征在于,所述第一消息队列包括:第一服务中心模块和第一服务代理模块,其中,所述第一服务中心模块,用于对所述第一请求进行转发;

所述第一服务代理模块,用于对所述第一请求进行处理。

4.根据权利要求1所述的系统,其特征在于,所述第二消息队列包括:第二服务中心模块和第二服务代理模块,其中,所述第二服务中心模块,用于对所述第二请求进行转发;

所述第二服务代理模块,用于对所述第二请求进行处理。

5.根据权利要求1所述的系统,其特征在于,还包括:迁移模块,其中,所述迁移模块,用于每间隔预设时长,将所述数据库中已经消费的信息迁移到预设存储位置进行存储。

6.根据权利要求1所述的系统,其特征在于,所述数据库为关系型数据库支持图片的异步传输。

7.一种通讯方法,其特征在于,应用于如权利要求1-6中任意一项所述的通讯系统中第一终端写入数据、第二终端读取数据过程中,所述通讯方法包括:所述第一终端通过第一消息队列将第一数据写入数据库;

第二消息队列经由强隔离装置访问所述数据库,获取所述第一数据,将所述第一数据经由所述强隔离装置,发送至所述第二终端。

8.一种通讯方法,其特征在于,应用于如权利要求1-6中任意一项所述的通讯系统中第一终端读取数据、第二终端写入数据过程中,所述通讯方法包括:所述第二终端通过第二消息队列、经由强隔离装置将第二数据写入数据库;

第一消息队列访问所述数据库,获取所述第二数据,将所述第二数据发送给所述第一终端。

9.一种通讯装置,其特征在于,应用于如权利要求1-6中任意一项所述的通讯系统中第一终端写入数据、第二终端读取数据过程中,所述通讯装置包括:第一写入模块,用于所述第一终端通过第一消息队列将第一数据写入数据库;

第一获取和发送模块,用于第二消息队列经由强隔离装置访问所述数据库,获取所述第一数据,将所述第一数据经由所述强隔离装置,发送至所述第二终端。

10.一种通讯装置,其特征在于,应用于如权利要求1-6中任意一项所述的通讯系统中第一终端读取数据、第二终端写入数据过程中,所述通讯装置包括:第二写入模块,用于所述第二终端通过第二消息队列、经由强隔离装置将第二数据写入数据库;

第二读取和发送模块,用于第一消息队列访问所述数据库,获取所述第二数据,将所述第二数据发送给所述第一终端。

说明书 :

一种通讯系统、方法及装置

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种通讯系统、方法及装置。

背景技术

[0002] 在传统的内外网通讯中,内网终端的应用调用内网数据库,把相关信息写进内网MySQL数据库。外网终端的应用通过强隔离访问内网数据库,获取内网应用产生的信息数据。
[0003] 上述的通讯过程中,内网终端的应用和外网终端的应用都依托数据库,内网终端和外网终端都需要配置数据库相关信息,一旦数据库发生改变,需要对终端进行调增,必将影响系统应用的正常运转,这样系统的耦合度大大增加,不易于后期的系统维护。

发明内容

[0004] 有鉴于此,本发明提供一种通讯系统、方法及装置,用以解决现有通讯过程中,内网终端的应用和外网终端的应用都依托数据库,内网终端和外网终端都需要配置数据库相关信息,一旦数据库发生改变,需要对终端进行调增,必将影响系统应用的正常运转,这样系统的耦合度大大增加,不易于后期的系统维护的问题,具体方案如下:一种通讯系统,包括:第一终端、第一消息队列、数据库、第二终端和第二消息队列,其中,
所述第一终端,用于发送所述第一终端的第一请求,其中,所述第一请求包括:读取或者写入请求;
所述第一消息队列,用于接收所述第一终端的第一请求并对所述第一请求进行处理;
所述数据库,用于存储所述第一终端和所述第二终端发送的数据;
所述第二终端,用于发送所述第二终端的第二请求,其中,所述第二请求包括:读取或者写入请求;
所述第二消息队列,用于接收所述第二终端的第二请求并对所述第二请求进行处理。
[0005] 上述的系统,可选的,还包括:强隔离装置,其中,所述强隔离装置,用于将第一网络和第二网络进行隔离,其中,所述第一网络包括:所述第一终端、所述第一消息队列和所述数据库,所述第二网络包括:所述第二终端和所述第二消息队列;
上述的系统,可选的,所述第一消息队列包括:第一服务中心模块和第一服务代理模块,其中,
所述第一服务中心模块,用于对所述第一请求进行转发;
所述第一服务代理模块,用于对所述第一请求进行处理。
[0006] 上述的系统,可选的,所述第二消息队列包括:第二服务中心模块和第二服务代理模块,其中,所述第二服务中心模块,用于对所述第二请求进行转发;
所述第二服务代理模块,用于对所述第二请求进行处理。
[0007] 上述的系统,可选的,还包括:迁移模块,其中,所述迁移模块,用于每间隔预设时长,将所述数据库中已经消费的信息迁移到预设存储位置进行存储。
[0008] 上述的系统,可选的,所述数据库为关系型数据库支持图片的异步传输。
[0009] 一种通讯方法,应用于上述的通讯系统中第一终端写入数据、第二终端读取数据过程中,所述通讯方法包括:所述第一终端通过第一消息队列将第一数据写入数据库;
第二消息队列经由强隔离装置访问所述数据库,获取所述第一数据,将所述第一数据经由所述强隔离装置,发送至所述第二终端。
[0010] 一种通讯方法,应用于上述的通讯系统中第一终端读取数据、第二终端写入数据过程中,所述通讯方法包括:所述第二终端通过第二消息队列、经由强隔离装置将第二数据写入数据库;
第一消息队列访问所述数据库,获取所述第二数据,将所述第二数据发送给所述第一终端。
[0011] 一种通讯装置,应用于上述的通讯系统中第一终端写入数据、第二终端读取数据过程中,所述通讯装置包括:第一写入模块,用于所述第一终端通过第一消息队列将第一数据写入数据库;
第一获取和发送模块,用于第二消息队列经由强隔离装置访问所述数据库,获取所述第一数据,将所述第一数据经由所述强隔离装置,发送至所述第二终端。
[0012] 一种通讯装置,应用于上述的通讯系统中第一终端读取数据、第二终端写入数据过程中,所述通讯装置包括:第二写入模块,用于所述第二终端通过第二消息队列、经由强隔离装置将第二数据写入数据库;
第二读取和发送模块,用于第一消息队列访问所述数据库,获取所述第二数据,将所述第二数据发送给所述第一终端。
[0013] 与现有技术相比,本发明包括以下优点:本发明公开了一种通讯系统、方法及装置,该系统包括:第一终端、第一消息队列、数据库、第二终端和第二消息队列,其中,所述第一终端,用于发送所述第一终端的第一请求,其中,所述第一请求包括:读取或者写入请求;所述第一消息队列,用于接收所述第一终端的第一请求并对所述第一请求进行处理;所述数据库,用于存储所述第一终端和所述第二终端发送的数据;所述第二终端,用于发送所述第二终端的第二请求,其中,所述第二请求包括:读取或者写入请求;所述第二消息队列,用于接收所述第二终端的第二请求并对所述第二请求进行处理。上述的系统中,数据库不再与第一终端和第二终端进行交互,在数据库和终端之间加入了消息队列,即便数据库发生改变,也只需要对消息队列进行简单调整,不需要调整终端,降低了终端和数据库的耦合程度,有利于系统的稳定。
[0014] 当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

[0015] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016] 图1为本申请实施例公开的一种通讯系统结构框图;图2为本申请实施例公开的一种通讯方法流程图;
图3为本申请实施例公开的一种通讯方法又一流程图;
图4为本申请实施例公开的一种通讯装置结构框图;
图5为本申请实施例公开的一种通讯装置又一结构框图。

具体实施方式

[0017] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0018] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
[0019] 本发明公开了一种通讯系统、方法及装置,应用通讯过程中,其中,所述通讯过程为两个终端的通讯,其中,所述两个终端处于可以处于同一网络中,也可以处于不同网络中,优选的,本发明实施例中以两个终端处于不同网络,进行说明,现有技术中,处于不同网络的终端直接与数据库相连接和强隔离,并且只能通过SQL进行传输,极大地消耗了数据库资源,系统冗余度也很高不同终端之间的通讯需要整体作集群部署,资源耗费严重,并且所有功能是融合在一起的相互影响较大,本发明实施例中,系统采用了模块化功能拆分的设计思想,各个模块分工合作,实现了各个模块进行单独的集群部署,不但提高了系统整体性能,又节省了资源。该系统对通讯过程做了进一步的封装,消息生产者和消费者无需关注消息传输的过程。
[0020] 所述通讯系统的结构框图如图1所示,所述通讯系统包括:第一终端、第一消息队列、数据库、第二终端和第二消息队列,其中,所述第一终端,用于发送所述第一终端的第一请求,其中,所述第一请求包括:读取或者写入请求;
本发明实施例中,所述第一终端与所述第一消息队列通过所述第一消息队列对外暴露的端口相连接,所述第一终端将所述第一请求发送给所述第一消息队列,其中,所述第一请求包括读取或者请求。
[0021] 所述第一消息队列,用于接收所述第一终端的第一请求并对所述第一请求进行处理;本发明实施例中,所述第一消息队列与所述数据库相连接,所述第一消息队列包括:第一服务中心模块(第一namersv)和第一服务代理模块(第一broker)其中,所述第一服务中心模块用于接收所述第一请求,并对所述第一请求进行转发,所述第一服务中心模块对外包括端口,供外部调用,更新和发现第一代理服务,所述第一代理模块是消息主机服务器,用于接收所述第一请求,对所述第一请求进行处理,处理过程包括,获取所述第一请求中包含的待处理消息,依据请求的类型,对所述待处理消息进行对应处理,其中,处理方式包括:
将所述待处理存储得到所述数据库中或者在所述数据库中读取所述待处理数据。
[0022] 所述数据库,用于存储所述第一终端和所述第二终端发送的数据;本发明实施例中,所述数据库为关系型数据库,优选的,所述数据库为Mysql数据库,所述数据库中存储有第一终端和第二终端写入的信息。
[0023] 所述第二终端,用于发送所述第二终端的第二请求,其中,所述第二请求包括:读取或者写入请求;本发明实施例中,所述二终端与所述第二消息队列相连接,所述第二终端将所述第二请求发送给所述第二消息队列,其中,所述第二请求包括读取或者写入请求。
[0024] 所述第二消息队列,用于接收所述第二终端的第二请求并对所述第二请求进行处理。
[0025] 本发明实施例中,所述第二消息对与所述数据库相连接,所述第二消息队列包括:第二服务中心模块(第二namersv)和第二服务代理模块(第二broker)其中,所述第二服务中心模块用于接收所述第二请求,并对所述第二请求进行转发,所述第二服务中心模块对外包括端口,供外部调用,更新和发现第二代理服务,所述第二代理模块是消息主机服务器,用于接收所述第二请求,对所述第二请求进行处理,处理过程包括,获取所述第二请求中包含的待处理消息,依据请求的类型,对所述待处理消息进行对应处理,其中,处理方式包括:将所述待处理存储得到所述数据库中或者在所述数据库中读取所述待处理数据。
[0026] 本发明公开了一种通讯系统,包括:第一终端、第一消息队列、数据库、第二终端和第二消息队列,其中,所述第一终端,用于发送所述第一终端的第一请求,其中,所述第一请求包括:读取或者写入请求;所述第一消息队列,用于接收所述第一终端的第一请求并对所述第一请求进行处理;所述数据库,用于存储所述第一终端和所述第二终端发送的数据;所述第二终端,用于发送所述第二终端的第二请求,其中,所述第二请求包括:读取或者写入请求;所述第二消息队列,用于接收所述第二终端的第二请求并对所述第二请求进行处理。上述的系统中,数据库不再与第一终端和第二终端进行交互,在数据库和终端之间加入了消息队列,即便数据库发生改变,也只需要对消息队列进行简单调整,不需要调整终端,降低了终端和数据库的耦合程度,有利于系统的稳定。
[0027] 本发明实施例中,所述通讯系统还包括:强隔离装置,所述强隔离装置,用于将第一网络和第二网络进行隔离,其中,所述第一网络包括:所述第一终端、所述第一消息队列和所述数据库,所述第二网络包括:所述第二终端和所述第二消息队列;本发明实施例中,以所述第一网络为内网,所述第二网络为外网,所述内网和所述外网之间通过强隔离装置进行隔离为例进行说明,优选的,所述强隔离装置,是将可信任的信息内网和不可信任的信息外网进行隔离,因此必须保证信息内网和信息外网之间的SQL通信均通过所述强隔离装置进行,同时还必须保证自身的安全性。
[0028] 在内外网通讯中,关键点是强隔离,而强隔离的关键是使用数据库。因此内外网通讯消息队列是基于现有的强隔离装置、数据库、消息队列的技术手段实现的自研消息队列中间件,具备消息队列的基本功能。它是特定网络要求环境下的产品,仅适用于内外网间数据传输。indbmq的实现使得互联网常用的消息队列技术得以广泛应用,一些常见的队列使用场景也可以应用。该系统能够高效率、低延迟、高并发和高稳定性的处理内外网通讯,从而为内外网通讯提供技术保障。
[0029] 根据内外网络通讯的要求,即必须使用强隔离装置和关系型数据库。所以内外网通讯消息队列系统(以下简称indbmq)采取了内网和外网分别部署一套系统的设计理念,两套系统通过mysql数据库作为数据的交互中心。在内网环境部署一套indbmq系统,系统直接连接内网mysql数据库。在外网环境部署一套indbmq系统,系统连接通过强隔离装置暴露到外网的mysql数据库地址。这样既满足了对内外网络通讯的要求,又实现了互联网消息队列功能。
[0030] indbmq系统功能如下:(1)实现基本的消息队列功能,支持主题的动态创建,支持消息的基本收发,支持推拉模式,保证消息的准确消费。
[0031] (2)性能要快与原先的效率,在性能方面要与原来自己单独实现有倍速提升。稳定性方面也优于原先的单独实现模式。
[0032] (3)快速开发,提供简单的SDK封装实现。开发者只关注消息队列中间件本身问题。无需关注内外网问题。
[0033] (4)支持分布式,与其他分布式消息队列一样支持分布式集群部署。通过分布式的方式,减轻单点压力,解决性能瓶颈问题。为了indbmq的后期发展和高并发性。该系统在设计时采取多子系统结构。即indbmq由两部分构成:namesrv和broker。此设计的好处在于,如果indbmq的访问压力持续增大时,可以采用多broker节点部署的方式,多个broker节点通过监听端口与namesrv保持长连接,这样就可以把访问压力分散到每个broker节点,从而减轻单个broker的访问压力。当系统调用压力增大时,还可以对namesrv进行集群化部署,减轻调用压力。针对indbmq的后期发展,还可以新增其他子系统进行协同运转。
[0034] (5)系统内设定时任务,被消费的消息数据会在一小时后备份到对应的history表。实现了消息数据的备份和可追溯性。在indbmq中添加了定时任务机制,每隔一段时间,indbmq会把已消费的消息迁移到别处。这样既减轻了数据库的压力,又可以对已消费消息进行追溯查询。这在某些应用场景中是非常重要的。
[0035] (6)产品支持内网和外网间图片的异步传输。传统的MQ产品只能进行字符数据的生产和消费。而indbmq的设计不仅于此,该系统可以支持图片的异步传输,可以满足更多的应用场景。支持内网和外网间图片的异步传输。丰富了消息的传输类型。Indbmq根据mysql数据库的存储特性,把生产者发送过来的图片信息存储到mysql数据库,当消费者消费消息的时候,再从数据库中获取该图片。
[0036] 进一步的,在使用indbmq时,可以像RocketMq一样使用消息队列。这样可以节省学习成本,上手更快。
[0037] 进一步的,传统的MQ产品都是把消息数据存储到文件中,而根据具体情况对网络的要求只能存储到数据库中。因此需要把文件存储转化为数据库存储。然后是数据库选型问题,当前市场主流的数据库有两种oracle和mysql。由于该系统所面临的使用环境比较复杂,可能多场景部署和数据的绝对分离,所以需要一个轻量级的数据。此时mysql的优点就比较显现。因此选择mysql作为消息数据的存储载体。
[0038] 基于上述的通讯系统,本发明实施例中是提供了一种通讯方法,应用所述的通讯系统中第一终端写入数据、第二终端读取数据过程中,所述通讯方法的执行流程如图2所示,包括:S101、所述第一终端通过第一消息队列将第一数据写入数据库;
本发明实施例中,当所述第一消息队列接收到所述第一终端发送的写入请求时,获取所述写入请求中包含的第一数据,将所述第一数据写入所述数据库。
[0039] S102第二消息队列经由强隔离装置访问所述数据库,获取所述第一数据,将所述第一数据经由所述强隔离装置,发送至所述第二终端。
[0040] 本发明实施例中,所述第二消息队列通过轮询的方式经由所述强隔离装置不断的访问所述数据库,当检测到所述数据库中存储有所述第一数据时,检测的方式可以为在所述数据库的指定位置不断查找或者,接收到预设指令或者其它的检测方式,本发明实施例中,对具体的检测方式不进行限定,获取所述第一数据,将所述第一数据经由所述强隔离装置发送给所述第二终端。
[0041] 基于上述的通讯系统,本发明实施例中是提供了一种通讯方法,应用于上述的通讯系统中第一终端读取数据、第二终端写入数据过程中,所述通讯方法的执行流程如图3所示,包括:S201、所述第二终端通过第二消息队列、经由强隔离装置将第二数据写入数据库;
本发明实施例中,当所述第二消息队列接收到所述第二终端发送的写入请求时,获取所述写入请求中包含的第二数据,将所述第二数据写入所述数据库。
[0042] S202、第一消息队列访问所述数据库,获取所述第二数据,将所述第二数据发送给所述第一终端。
[0043] 本发明实施例中,所述第一消息队列通过轮询的方式经由所述强隔离装置不断的访问所述数据库,当检测到所述数据库中存储有所述第二数据时,检测的方式可以为在所述数据库的指定位置不断查找或者,接收到预设指令或者其它的检测方式,本发明实施例中,对具体的检测方式不进行限定,获取所述第二数据,将所述第一数据经由所述强隔离装置发送给所述第一终端。
[0044] 本发明实施例中,针对上述的通讯方法,以内外网通讯消息队列使用过程为例进行说明,indbmq系统是在内网和外网服务器分别部署,内网的indbmq直接连接数据库,外网indbmq直接连接强隔离访问数据库。因为indbmq同时具备往数据库插入数据和从数据库取数据的功能。所以就实现了内外网的双向通讯。当内网生产消息外网消费时:内网indbmq把生产者生产的消息存储到数据库中,外网indbmq通过强隔离从数据库中取出消息数据,发送给消费者进行消费。当外网生产消息内网消费时:外网indbmq把生产者生产的消息通过强隔离存储到数据库中,内网indbmq从数据库中取出消息信息,发送给消费者进行消费。Springboot应用集成indbmq方式实现过程如下:
(1)消息生产者集成方式
在pom文件中添加相关依赖

org.apache.rocketmq
spring-boot-starter-rocketmq
    1.0.1

在配置文件中添加相应的配置信息:
pring:
  rocketmq:
      nameServer: 127.0.0.1:8764;127.0.0.1:8765
      producer:
        group: producer-group
然后就可以使用RocketMQTemplate对象向indbmq发送消息
@Resource
private RocketMQTemplate rocketMQTemplate;
public void send(String msg) {
    this.rocketMQTemplate.convertAndSend(topic,"Hello, World!" + msg);
}
(2)消息消费者集成方式
在pom文件中添加相关依赖

org.apache.rocketmq
spring-boot-starter-rocketmq
    1.0.1

在配置文件中添加相应的配置信息
spring:
  rocketmq:
      nameServer: 127.0.0.1:8764;127.0.0.1:8765
      producer:
        group: producer-group
然后就可以使用RocketMQListener监听来获取indbmq里面的消息
@Service
@RocketMQMessageListener(topic = "tooapi-test", consumerGroup = "topic-consumer-group")
public class ConsumerRocketMQListener implements RocketMQListener {
    public void onMessage(String message) {
         System.out.println("veceived message: " + message);
    }
}
进一步的,针对上述的实现过程,两套indbmq使用同一个消息存储池,实现了消息的共享问题。所以indbmq采取同一数据库双地址的设计。即内网indbmq直接连接内网数据库,内网数据库通过强隔离装置,暴露出另一个连接地址,供外网indbmq连接。此时这两个数据库连接信息其实操作的是同一个数据库。这样就实现了两套indbmq连接同一个数据库,保证了数据的共享。
[0045] 在使用mysql数据库存储消息的时候,还要考虑到消息的防重复消费和数据库的检索压力问题。因此indbmq充分利用了数据库的事务特性,在数据库事务层面保证了消息的唯一消费。当indbmq运行一段时间后,随之而来的是数据库的检索压力问题。因为随着时间的推移,数据池中的数据量会逐渐增大,此时数据库检索压力也会逐渐增大。所以indbmq采用了定时迁移机制。即每隔一段时间就把已消费的消息数据迁移出消息池。这样就大大减轻了数据库检索的压力。
[0046] 在特定场景下,消息可追溯机制也是必不可少的。举个例子,当支付系统发送了一条支付消息,该消息也被正常消费了。当过了几个月后业务人员发现这条支付消息有问题,需要全链路查找追溯。此时消息可追溯机制就显得尤为重要。Indbmq可以在已消费消息池中快速的找到这条已消费的消息,这样就保证了业务的安全。
[0047] 当仅在外网环境或内网环境,也是可以使用indbmq。Indbmq既实现了内外网间的双向通讯,还支持内网与内网、外网与外网的通讯。这样就使得indbmq的应用场景更加广泛。只要在以数据库为消息载体的场景都可以使用indbmq。
[0048] 基于图2所述的通讯方法,本发明实施例中还提供了一种通讯装置,所述通讯装置应用于上的通讯系统中第一终端写入数据、第二终端读取数据过程中,所述通讯装置的结构框图如图4所示,包括:第一写入模块301和第一获取和发送模块302。
[0049] 所述第一写入模块301,用于所述第一终端通过第一消息队列将第一数据写入数据库;所述第一获取和发送模块302,用于第二消息队列经由强隔离装置访问所述数据库,获取所述第一数据,将所述第一数据经由所述强隔离装置,发送至所述第二终端。
[0050] 基于图3所示的通讯方法,本发明实施例中还提供了一种通讯装置,应用于上述的通讯系统中第一终端读取数据、第二终端写入数据过程中,所述通讯装置的结构框图如图5所示,包括:第二写入模块401和第二读取和发送模块402。
[0051] 其中,所述第二写入模块401,用于所述第二终端通过第二消息队列、经由强隔离装置将第二数据写入数据库;
所述第二读取和发送模块402,用于第一消息队列访问所述数据库,获取所述第二数据,将所述第二数据发送给所述第一终端。
[0052] 需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0053] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0054] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0055] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0056] 以上对本发明所提供的一种通讯系统、方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。