一种基于数据库数据同步来实现HTTP代理的方法和系统技术方案

技术编号:27458542 阅读:24 留言:0更新日期:2021-02-25 05:08
一种基于数据库数据同步来实现HTTP代理的方法,当用户发起HTTP请求时,Httpproxy服务器会对该请求进行拆分和标记,将请求URI和消息体封装JSON格式,并设置消息类型为请求数据,并为该条消息添加唯一标识,将拆分好的数据写入数据库,通过网闸同步数据库表数据。另一端网络获取该请求数据后,会重新组装并转发给目标服务器,目标服务器获取到应答数据后再将数据拆分,将应答状态和消息体封装JSON格式,并设置消息类型为应答数据,请求端获取数据后组装并返回给客户端。上述消息交换模式,以数据库为桥梁,两端都通过Httpproxy服务器消息转换和会话管理,无需开通HTTP端口,即可实现HTTP跨网请求,且各个模块支持集群部署,当用户量过大时候支持横向拓展系统的并发额能力。能力。能力。

【技术实现步骤摘要】
一种基于数据库数据同步来实现HTTP代理的方法和系统


[0001]本专利技术涉及的是数据库领域,特别涉及一种基于数据库数据同步来实现HTTP代理的方法和系统。

技术介绍

[0002]随着目前数字信息联网技术的快速发展,各行业专用通信网络的建立,形成包括铁路专网、教育专网、石化专网等信息网络分层的多元化广域网络。各个行业对信息联网应用建设日趋成熟。而某些特殊的网络应用,需要在不同的网络之间交互数据。比如铁路系统一线部门需要实时与铁路数据中心交换信息,传统模式是采用开放端口的方式,实现数据的交换。但在某些特殊的网络环境下或者对安全方面的需要,是无法开放HTTP端口的。这种情况下就无法部署基于HTTP协议的网络应用。

技术实现思路

[0003]鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于大数据统计城市外来人员和常驻人口的方法及系统。
[0004]为了解决上述技术问题,本申请实施例公开了如下技术方案:
[0005]一种基于数据库数据同步来实现HTTP代理的方法,包括:
[0006]S100.第一网络中的Httpproxy服务器接收到终端HTTP请求,并将HTTP请求进行拆分,封装成JSON格式,写入数据库;
[0007]S200.利用网闸将第一网络中数据库写入的请求数据同步至第二网络数据库中;
[0008]S300.第二网络中的kafka-connect服务器检测到数据库数据变更后,将请求数据取出发布到第二网络中的kafka服务器;
[0009]S400.第二网络中的Httpproxy服务器订阅到kafka服务器的请求数据,将JSON格式的数据重新组装成HTTP请求,并将请求数据转发给目标服务器;
[0010]S500.目标服务器接收HTTP请求,根据HTTP请求,向第二网络中的Httpproxy服务器输出应答数据;
[0011]S600.第二网络中的Httpproxy服务器将应答数据拆分,并封装成JSON格式,并写入第二网络中的数据库;
[0012]S700.利用网闸将第二网络中数据库写入的应答数据同步至第一网络数据库中;
[0013]S800.第一网络中的kafka-connect服务器检测到数据变更,将应答数据提取,发布到第一网络中的kafka服务器中;
[0014]S900.第一网络中的中的Httpproxy服务器订阅到kafka服务器的应答数据,将JSON格式的数据重新组装成HTTP应答消息,并将请求回复给终端。
[0015]进一步地,S100中,将HTTP请求进行拆分,封装成JSON格式,至少包括:请求URI,消息类型、消息体以及唯一ID字段。
[0016]进一步地,S100中,写入数据库的具体方法为:封装后JSON写入数据库表MSG字段,
同时写入MSGTPYE为0,代表消息类型为请求。
[0017]进一步地,网闸为第一网络和第二网络的边界程序,能提供第一网络和第二网络的数据库表的同步功能。
[0018]进一步地,S400-S500中,当第二网络中的Httpproxy服务器将请求数据转发给目标服务器后,会在预设时间内判断是否收到目标服务器应答数据,若预设时间内收到目标服务器应答数据,则执行S600;若预设时间内未收到目标服务器应答数据,则流程结束。
[0019]进一步地,S600中,第二网络中的Httpproxy服务器将应答数据拆分,并封装成JSON格式,至少包括:状态及错误码,消息体以及请求时携带的唯一ID。
[0020]进一步地,S600中,写入数据库的具体方法为:写入数据库表MSG字段,同时MSGTYPE写入1,代表应答消息。
[0021]进一步地,S900中,在预设时间内判断第一网络中的中的Httpproxy服务器是否订阅到kafka服务器的应答数据,若在预设时间内,第一网络中的中的Httpproxy服务器未订阅到kafka服务器的应答数据,将超时错误回复给客户端,流程结束。
[0022]本专利技术还公开了一种基于数据库数据同步来实现HTTP代理的系统,包括:Httpproxy服务器、kafka和kafka-connect服务器、数据库;其中:Httpproxy服务器、kafka和kafka-connect服务器、数据库都至少包含2个,分别设置于第一网络和第二网络;
[0023]Httpproxy服务器,用于接收第一网络的终端HTTP请求,并将HTTP请求进行拆分,封装成JSON格式,写入第一网络的数据库;用于订阅第二网络的kafka服务器的请求数据,将JSON格式的数据重新组装成HTTP请求,并将请求数据转发给第二网路的目标服务器;还用于接收第二网络的目标服务器应答数据,Httpproxy服务器将应答数据拆分,并封装成JSON格式,并写入第二网络中的数据库;
[0024]kafka-connect服务器,用于检测第二网络中的数据库数据是否变更,当数据库数据变更后,将请求数据取出发布到第二网络中的kafka服务器;还用于检测第一网络中的数据库数据是否变更,当数据库数据变更后,将应答数据取出发布到第一网络中的kafka服务器;
[0025]kafka服务器,用于和Httpproxy服务器进行信息交互,将终端的请求数据发送给第二网络的Httpproxy服务器;还用于将目标服务器的应答数据发送给第一网络的Httpproxy服务器;
[0026]数据库,通过网闸将第一网络和第二网络的数据进行同步,用于将请求数据和应答数据在第一网络和第二网络之间进行同步。
[0027]进一步地,Httpproxy服务器包括Consumer模块、Session模块和Datebase适配层;其中:
[0028]Consume模块,用于订阅kafka的消息,通过标记类型区分消息是请求还是应答,并转发到Session模块处理;
[0029]Session模块,用于会话的管理,包括处理HTTP请求及应答;
[0030]Datebase适配层,用于针对各个数据库API进行封装。
[0031]本专利技术实施例提供的上述技术方案的有益效果至少包括:
[0032]本专利技术公开的一种基于数据库数据同步来实现HTTP代理的方法和系统,在程序和架构方面提供了综合的解决方案,当用户发起HTTP请求时,Httpproxy会对该请求进行拆分
和标记,将请求URI和消息体封装JSON格式,并设置消息类型TYEP,TYPE=0表示该条数据为请求数据,并为该条消息添加唯一标识,将拆分好的数据写入数据库,通过网闸同步数据库表数据。另一端网络获取该请求数据后,会重新组装并转发给目标服务器,目标服务器获取到应答数据后再将数据拆分,将应答状态和消息体封装JSON格式,并设置消息类型TYPE,TYPE=1表示该条数据为应答数据,请求端获取数据后组装并返回给客户端。上述消息交换模式,以数据库为桥梁,两端都通过Httppr本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于数据库数据同步来实现HTTP代理的方法,其特征在于,包括:S100.第一网络中的Httpproxy服务器接收到终端HTTP请求,并将HTTP请求进行拆分,封装成JSON格式,写入数据库;S200.利用网闸将第一网络中数据库写入的请求数据同步至第二网络数据库中;S300.第二网络中的kafka-connect服务器检测到数据库数据变更后,将请求数据取出发布到第二网络中的kafka服务器;S400.第二网络中的Httpproxy服务器订阅到kafka服务器的请求数据,将JSON格式的数据重新组装成HTTP请求,并将请求数据转发给目标服务器;S500.目标服务器接收HTTP请求,根据HTTP请求,向第二网络中的Httpproxy服务器输出应答数据;S600.第二网络中的Httpproxy服务器将应答数据拆分,并封装成JSON格式,并写入第二网络中的数据库;S700.利用网闸将第二网络中数据库写入的应答数据同步至第一网络数据库中;S800.第一网络中的kafka-connect服务器检测到数据变更,将应答数据提取,发布到第一网络中的kafka服务器中;S900.第一网络中的中的Httpproxy服务器订阅到kafka服务器的应答数据,将JSON格式的数据重新组装成HTTP应答消息,并将请求回复给终端。2.如权利要求1的一种基于数据库数据同步来实现HTTP代理的方法,其特征在于,S100中,将HTTP请求进行拆分,封装成JSON格式,至少包括:请求URI,消息类型、消息体以及唯一ID字段。3.如权利要求1的一种基于数据库数据同步来实现HTTP代理的方法,其特征在于,S100中,写入数据库的具体方法为:封装后JSON写入数据库表MSG字段,同时写入MSGTPYE为0,代表消息类型为请求。4.如权利要求1的一种基于数据库数据同步来实现HTTP代理的方法,其特征在于,网闸为第一网络和第二网络的边界程序,能提供第一网络和第二网络的数据库表的同步功能。5.如权利要求1的一种基于数据库数据同步来实现HTTP代理的方法,其特征在于,S400-S500中,当第二网络中的Httpproxy服务器将请求数据转发给目标服务器后,会在预设时间内判断是否收到目标服务器应答数据,若预设时间内收到目标服务器应答数据,则执行S600;若预设时间内未收到目标服务器应答数据,则流程结束。6.如权利要求1的一种基于数据库数据同步来实现HTTP代理的方法,其特征在于,S600中,第二网络中的Httpproxy服务器将应答数据拆分,并封装成JSON格式,至少包括:状态及错误码,消息体...

【专利技术属性】
技术研发人员:方辉
申请(专利权)人:武汉烽火众智数字技术有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1