【技术实现步骤摘要】
一种基于TCP协议的数据库Socket网关实现方法及装置
本专利技术涉及TCP协议和异步非阻塞架构,具体地说是一种基于TCP协议的数据库Socket网关实现方法及装置。
技术介绍
大数据和云计算时代,面对健康医疗的海量的业务数据和复杂的数据库类型,开发过程中面对数据库连接成了当前的最大痛点和难点之一,数据库网关的概念被提出。目前业界网关工具主要是针对RestAPI的服务网关,实现方式主要有两类,一种是基于servlet的阻塞式IO网关,如springcloudnetflexzuul1.0,由于为每个请求分配一个独立的线程,当并发量很大时,线程的上下文切换会极大的消耗资源,极易导致资源的枯竭,但由于可以定义一系列基于filter的过滤器,给开发人员带来了巨大的遍历,相对更成熟,更适用于计算密集型的场景;另一种是基于异步非阻塞式架构的服务网关,如springcloudgateway,由于线程很少,开销更少,使得连接数也可以更多,然而编程模型较为复杂,调试流程也更为复杂,适用于IO密集型的场景。以上两类网关产品各有自己的应用场景,然而,都只是针对HTTP应用层协议连接类型的网关类型,目前市面少极少有针对TCP传输层连接的。在云计算和大数据快速发展的今天,如何设计一个基于Socket长连接的针对TCP连接的网关,且该网关能够实现对各种数据库的连接进行代理是架构师和开发者所迫切期待的。专利号为CN110311981A的专利文献公开了一种基于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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。