一种基于TCP协议的数据库Socket网关实现方法及装置制造方法及图纸

技术编号:23449984 阅读:29 留言:0更新日期:2020-02-28 23:14
本发明专利技术公开了一种基于TCP协议的数据库Socket网关实现方法及装置,属于TCP协议和异步非阻塞架构,本发明专利技术要解决的技术问题为如何设计一个基于Socket长连接的针对TCP连接的网关,且该网关能够实现对各种数据库的连接进行代理,采用的技术方案为:该方法是基于TCP协议的Socket模型,对数据库连接进行封装,作为网关对外进行暴漏,从而实现限流、安全认证、审计的功能。该装置包括基于Netty框架的TCP服务器、认证处理器、限流限量处理器、监控处理器、心跳处理器和数据库连接管理器。

A realization method and device of database socket gateway based on TCP protocol

【技术实现步骤摘要】
一种基于TCP协议的数据库Socket网关实现方法及装置
本专利技术涉及TCP协议和异步非阻塞架构,具体地说是一种基于TCP协议的数据库Socket网关实现方法及装置。
技术介绍
大数据和云计算时代,面对健康医疗的海量的业务数据和复杂的数据库类型,开发过程中面对数据库连接成了当前的最大痛点和难点之一,数据库网关的概念被提出。目前业界网关工具主要是针对RestAPI的服务网关,实现方式主要有两类,一种是基于servlet的阻塞式IO网关,如springcloudnetflexzuul1.0,由于为每个请求分配一个独立的线程,当并发量很大时,线程的上下文切换会极大的消耗资源,极易导致资源的枯竭,但由于可以定义一系列基于filter的过滤器,给开发人员带来了巨大的遍历,相对更成熟,更适用于计算密集型的场景;另一种是基于异步非阻塞式架构的服务网关,如springcloudgateway,由于线程很少,开销更少,使得连接数也可以更多,然而编程模型较为复杂,调试流程也更为复杂,适用于IO密集型的场景。以上两类网关产品各有自己的应用场景,然而,都只是针对HTTP应用层协议连接类型的网关类型,目前市面少极少有针对TCP传输层连接的。在云计算和大数据快速发展的今天,如何设计一个基于Socket长连接的针对TCP连接的网关,且该网关能够实现对各种数据库的连接进行代理是架构师和开发者所迫切期待的。专利号为CN110311981A的专利文献公开了一种基于TCP协议的分路网关通信方法及装置、终端、通信装置。该方法包括建立与分路网关的链路连接,并且将所述分路网关与接收平台建立的连接与所述与分路网关的链路连接保持一致;通过所述分路网关在所述接收平台主动下行、所述接收平台应答下行或者所述终端主动上行时实现报文精准上行或下行。该技术方案解决了精准转发的问题,但是该网关不能实现对各种数据库的连接进行代理。
技术实现思路
本专利技术的技术任务是提供一种基于TCP协议的数据库Socket网关实现方法及装置,来解决如何设计一个基于Socket长连接的针对TCP连接的网关,且该网关能够实现对各种数据库的连接进行代理的问题。本专利技术的技术任务是按以下方式实现的,一种基于TCP协议的数据库Socket网关实现方法,该方法是基于TCP协议的Socket模型,对数据库连接进行封装,作为网关对外进行暴漏,从而实现限流、安全认证、审计的功能;具体步骤如下:S1、建立基于Netty框架的TCP服务器,客户端通过与TCP服务器建立长连接来发送所需要连接的数据库地址以及所要执行的sql;S2、调用认证处理器:认证处理器在客户端与TCP服务器进行连接,TCP服务器进行验证和鉴权;S3、调用限流限量处理器:限流限量处理器对日志系统按照预设的规则进行流量限制或功能限制;TCP服务器根据所申请和配置的限流模型对客户端的请求进行限制,保证了服务的可用性;S4、调用监控处理器:监控处理器对所有与客户端连接和来自客户端的数据进行过滤和监控并判断是否超出规则;S5、调用心跳处理器:客户端与TCP服务器建立连接后,通过心跳处理器监测Socket是否断开;S6、调用数据库连接管理器:客户端与TCP服务器建立连接后,数据库连接管理器收到客户端的信息,数据库连接管理器根据该信息与数据库建立连接。作为优选,所述步骤S1中的TCP服务器建立两个group,一个负责接收客户端的连接,另一个负责处理数据传输,通过创建一个NioServerSocketChannel来绑定处理group,从而实现TCP协议的服务器。作为优选,所述步骤S2中的认证处理器结合了Auth2.0授权认证的思想,在客户端与TCP服务器进行连接后,通过客户端所注册的id向客户端提供一个Token,客户端向TCP服务器发送的所有sql均携带该token,TCP服务器进行验证和鉴权,且对不同的数据库连接会有相应的权限验证,大大降低了安全风险。作为优选,所述步骤S4中监控处理器对所有的与客户端连接和来自客户端的数据进行过滤和监控并判断是否超出规则,具体如下:若超过规则,则监控处理器拒绝连接或拒绝执行;同时,日志系统会对调用日志进行自动化分析,对可疑ip和账户进行封禁措施。作为优选,所述步骤S5中的客户端与TCP服务器建立连接后,通过心跳处理器监测Socket是否断开的具体如下:若判断TCP服务器是否在线,则需要客户端不停的发送心跳消息给TCP服务器,TCP服务器收到心跳消息,就立马回复消息,便能知道双方是否都在线;若在规定时间内,没有收到TCP服务器回复的消息,就表示TCP服务器已经死机。作为优选,所述步骤S6中的数据库连接管理器与数据库建立连接后,客户端向TCP服务器发送sql请求,数据库连接管理器将sql发送到相应的数据库执行,并将执行结果返回给客户端。更优地,所述数据库连接管理器将sql发送到相应的数据库执行,并将执行结果返回给客户端时,若数据量太大,则基于TCP进行拆包和粘包,完成大数据传输,提升数据量的吞吐性能。一种基于TCP协议的数据库Socket网关实现装置,该装置包括,基于Netty框架的TCP服务器,用于实现客户端通过与TCP服务器建立长连接来发送所需要连接的数据库地址以及所要执行的sql;认证处理器,用于对不用数据库连接进行相应的权限验证,大大降低了安全风险;限流限量处理器,用于对日志系统按照预设的规则进行流量限制或功能限制;TCP服务器根据所申请和配置的限流模型对客户端的请求进行限制,保证了服务的可用性;监控处理器,用于对所有的与客户端连接和来自客户端的数据进行过滤和监控并判断是否超出规则;心跳处理器,用于监测Socket是否断开;数据库连接管理器,用于接收客户端的信息,根据该信息与数据库建立连接。作为优选,所述基于Netty框架的TCP服务器建立两个group,一个负责接收客户端的连接,另一个负责处理数据传输,通过创建一个NioServerSocketChannel来绑定处理group,从而实现TCP协议的服务器。作为优选,所述认证处理器结合了Auth2.0授权认证的思想,在客户端与TCP服务器进行连接后,通过客户端所注册的id向客户端提供一个Token,客户端向TCP服务器发送的所有sql均携带该token,TCP服务器进行验证和鉴权。本专利技术的基于TCP协议的数据库Socket网关实现方法及装置具有以下优点:(一)本专利技术基于插件的数据库连接管理,支持多种数据库连接且能自定义数据库连接;(二)本专利技术提供基于插件的数据处理器,且动态热加载,为TCP网关的高可用提供了保障;(三)本专利技术提供了一种面向插件的基于Socket长连接的通讯方式,实现应用的访问;同时基于Socket长连接的请求模式,降低了频繁连接的开销,使得sql执行效率大大提升;(四)本专利技术基于TCP拆包和粘包的大数据量传输,提升了数据本文档来自技高网
...

【技术保护点】
1.一种基于TCP协议的数据库Socket网关实现方法,其特征在于,该方法是基于TCP协议的Socket模型,对数据库连接进行封装,作为网关对外进行暴漏,从而实现限流、安全认证、审计的功能;具体步骤如下:/nS1、建立基于Netty框架的TCP服务器,客户端通过与TCP服务器建立长连接来发送所需要连接的数据库地址以及所要执行的sql;/nS2、调用认证处理器:认证处理器在客户端与TCP服务器进行连接,TCP服务器进行验证和鉴权;/nS3、调用限流限量处理器:限流限量处理器对日志系统按照预设的规则进行流量限制或功能限制;TCP服务器根据所申请和配置的限流模型对客户端的请求进行限制,保证了服务的可用性;/nS4、调用监控处理器:监控处理器对所有与客户端连接和来自客户端的数据进行过滤和监控并判断是否超出规则;/nS5、调用心跳处理器:客户端与TCP服务器建立连接后,通过心跳处理器监测Socket是否断开;/nS6、调用数据库连接管理器:客户端与TCP服务器建立连接后,数据库连接管理器收到客户端的信息,数据库连接管理器根据该信息与数据库建立连接。/n

【技术特征摘要】
1.一种基于TCP协议的数据库Socket网关实现方法,其特征在于,该方法是基于TCP协议的Socket模型,对数据库连接进行封装,作为网关对外进行暴漏,从而实现限流、安全认证、审计的功能;具体步骤如下:
S1、建立基于Netty框架的TCP服务器,客户端通过与TCP服务器建立长连接来发送所需要连接的数据库地址以及所要执行的sql;
S2、调用认证处理器:认证处理器在客户端与TCP服务器进行连接,TCP服务器进行验证和鉴权;
S3、调用限流限量处理器:限流限量处理器对日志系统按照预设的规则进行流量限制或功能限制;TCP服务器根据所申请和配置的限流模型对客户端的请求进行限制,保证了服务的可用性;
S4、调用监控处理器:监控处理器对所有与客户端连接和来自客户端的数据进行过滤和监控并判断是否超出规则;
S5、调用心跳处理器:客户端与TCP服务器建立连接后,通过心跳处理器监测Socket是否断开;
S6、调用数据库连接管理器:客户端与TCP服务器建立连接后,数据库连接管理器收到客户端的信息,数据库连接管理器根据该信息与数据库建立连接。


2.根据权利要求1所述的基于TCP协议的数据库Socket网关实现方法,其特征在于,所述步骤S1中的TCP服务器建立两个group,一个负责接收客户端的连接,另一个负责处理数据传输,通过创建一个NioServerSocketChannel来绑定处理group,从而实现TCP协议的服务器。


3.根据权利要求1所述的基于TCP协议的数据库Socket网关实现方法,其特征在于,所述步骤S2中的认证处理器结合了Auth2.0授权认证的思想,在客户端与TCP服务器进行连接后,通过客户端所注册的id向客户端提供一个Token,客户端向TCP服务器发送的所有sql均携带该token,TCP服务器进行验证和鉴权,且对不同的数据库连接会有相应的权限验证。


4.根据权利要求1所述的基于TCP协议的数据库Socket网关实现方法,其特征在于,所述步骤S4中监控处理器对所有的与客户端连接和来自客户端的数据进行过滤和监控并判断是否超出规则,具体如下:
若超过规则,则监控处理器拒绝连接或拒绝执行;同时,日志系统会对调用日志进行自动化分析,对可疑ip和账户进行封禁措施。


5.根据权利要求1所述的基于TCP协议的数据库Socket网关实现方法,其特征在于,所述步骤S5中的客户端与T...

【专利技术属性】
技术研发人员:冯殿龙潘琪
申请(专利权)人:山东健康医疗大数据有限公司
类型:发明
国别省市:山东;37

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

1