首页> 中国专利> 一种基于netty的分布式数据库数据访问控制方法

一种基于netty的分布式数据库数据访问控制方法

摘要

本发明公开的一种基于netty的分布式数据库数据访问控制方法,通过开发并搭建基于netty的服务端与客户端网络应用服务,可以实现公网IP服务端与分布式数据库服务器通信以及分布式数据库高并发远程服务调用问题,并在服务端集成servlet请求为移动端提供数据访问接口入口,可以完成移动端与服务端之间的接口调用。本方法以映射有公网IP的服务端作为数据访问桥梁,通过移动端访问固定公网IP资源的服务端集成的http接口,再与netty客户端进行通信实现分布式数据库数据访问。针对分布式数据库互联网时代高并发数据请求需求,提供了一套完整的从移动端轻松访问各分布式数据库数据的访问流程及方法,并保证了数据请求过程的安全性、可靠性。

著录项

  • 公开/公告号CN112905640A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利号CN202110096456.2

  • 发明设计人 叶婷;李雪强;陶强;周宁;

    申请日2021-01-25

  • 分类号G06F16/2455(20190101);G06F16/27(20190101);G06F16/28(20190101);

  • 代理机构11228 北京汇泽知识产权代理有限公司;

  • 代理人吴静

  • 地址 430000 湖北省武汉市青山区厂前一号门

  • 入库时间 2023-06-19 11:16:08

说明书

技术领域

本发明涉及的是数据库数据访问领域,特别涉及一种基于netty的分布式数据库数据访问控制方法。

背景技术

随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩大,以分布式为主要特征的数据库系统的研究与开发受到人们的注意。分布式数据库是数据库技术与网络技术相结合的产物,在数据库领域已形成一个分支,而随着移动信息化进程的发展,移动应用已经呈现爆发式的增长,如果分布式数据库没有固定IP,那么通过移动端就无法直接进行数据库数据读取,特别是现在的移动开发越来越趋于开发周期短、版本更新容易的WebApp的开发体系,此体系呈现为前端应用和后端逻辑分离的局面,很大程度上提高了对接口的访问需求。在此现状下,虽然通过为每个数据库提供固定IP地址的方式简单、方便,移动端可以直接访问数据库数据,但是公网IP地址资源一直处于缺乏状态,这种方式不仅会大量占用公网IP资源且成本高、申请周期长,而且无法满足批量的客户端增长的需求。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于netty的分布式数据库数据访问控制方法。

为了解决上述技术问题,本申请实施例公开了如下技术方案:

一种基于netty的分布式数据库数据访问控制方法,包括:

S100.移动端向客户端发送请求数据;

S200.服务端向客户端通过协议转发请求数据;

S300.客户端根据请求数据,向数据库发送查询数据请求,数据库根据查询数据请求向客户端返回查询结果数据;

S400.客户端根据协议向服务端返回查询结果数据;

S500.服务端通过接口向移动端返回查询结果数据。

进一步地,服务端的开发和搭建过程具体为:首先定义两个线程组,用来处理客户端通道的accept和读写事件,然后绑定服务端通道NioServerSocketChannel,接着给读写事件的线程通道绑定handle来处理具体的业务逻辑,最后是绑定监听。

进一步地,客户端的搭建和开发过程为:通过服务端公网IP和端口绑定到服务端,完成与服务端的连接。

进一步地,搭建的服务端与客户端消息互通的过程为:服务端向客户端发送数据模拟移动端http请求,客户端接收到服务端的协议请求后,开始查询客户端数据库数据,查询导数据后通过Json压缩并返回给服务端,最后关闭连接。

进一步地,服务端还包括:集成servlet请求,重写doPost和doGet方法,针对Get请求在doGet方法里实现客户端数据请求,对于Post请求在doPost方法里实现客户端数据请求。

进一步地,服务端通过建立哈希表来完成多个客户端的数据通道维护,具体方法为:以客户端编号ID为哈希表key,将包含数据通道信息bean为哈希表value,当需要向指定客户端发送数据时,通过遍历哈希表即可找到指定客户端通道,并且向此通道来发送和接收数据。

进一步地,客户端向数据库请求数据时,首先看数据库是否有此数据,如果有,数据库将此数据直接返回给客户端,如果没有,通过查看同步锁模块是否执行,来判断是否有其他并行客户端请求。

进一步地,当有同步锁模块执行时,等待同步锁模块释放,当同步锁释放后,其他的并行客户端已经将数据存储至内存数据库;再次请求内存数据库是否有数据,如果有,将此数据直接返回给客户端,如果仍然没有,就请求关系型数据库返回数据,并将此数据存入内存数据库。

本发明实施例提供的上述技术方案的有益效果至少包括:

本发明公开的一种基于netty的分布式数据库数据访问控制方法,通过开发并搭建基于netty的服务端与客户端网络应用服务,可以实现公网IP服务端与分布式数据库服务器通信以及分布式数据库高并发远程服务调用问题,并在服务端集成servlet请求为移动端提供数据访问接口入口,可以完成移动端与服务端之间的接口调用。本方法以映射有公网IP的服务端作为数据访问桥梁,通过移动端访问固定公网IP资源的服务端集成的http接口,再与netty客户端进行通信实现分布式数据库数据访问。针对分布式数据库互联网时代高并发数据请求需求,提供了一套完整的从移动端轻松访问各分布式数据库数据的访问流程及方法,并保证了数据请求过程的安全性、可靠性。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例1中,移动端请求数据流程框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

为了解决现有技术中存在的问题,本发明实施例提供一种基于netty的分布式数据库数据访问控制方法。

实施例1

本实施例公开的一种基于netty的分布式数据库数据访问控制方法,该方法采用Java语言并在IDEA开发环境中具体实现netty客户端与服务端程序开发,以Postman工具以及Android4.0以上系统移动端作为测试环境,实现间接党文底层无固定公网IP的客户端数据库数据。

具体的,一种基于netty的分布式数据库数据访问控制方法,如图1,包括:

S100.移动端向客户端发送请求数据。

S200.服务端向客户端通过协议转发请求数据;具体的,本实施例中,服务端的开发和搭建过程具体为:首先定义两个线程组,用来处理客户端通道的accept和读写事件,然后绑定服务端通道NioServerSocketChannel,接着给读写事件的线程通道绑定handle来处理具体的业务逻辑,最后是绑定监听。客户端的搭建和开发过程为:通过服务端公网IP和端口绑定到服务端,完成与服务端的连接。

搭建的服务端与客户端消息互通的过程为:服务端向客户端发送数据模拟移动端http请求,客户端接收到服务端的协议请求后,开始查询客户端数据库数据,查询导数据后通过Json压缩并返回给服务端,最后关闭连接。通过手动搭建netty服务端和客户端程序,实现两个服务器之间的通信以及协议数据互通。

针对多个客户端,服务端通过设置内存哈希表来对每个客户端连接上服务端之后建立的通道channel进行存储,以客户端编号ID为哈希表key,将包含数据通道信息bean为哈希表value,这样当需要向指定客户端发送数据时,通过遍历哈希表即可找到指定客户端通道,并且向此通道来发送和接收数据。

S300.客户端根据请求数据,向数据库发送查询数据请求,数据库根据查询数据请求向客户端返回查询结果数据;具体的,客户端向数据库请求数据时,首先看数据库是否有此数据,如果有,数据库将此数据直接返回给客户端,如果没有,通过查看同步锁模块是否执行,来判断是否有其他并行客户端请求。

优选的,当有同步锁模块执行时,等待同步锁模块释放,当同步锁释放后,其他的并行客户端已经将数据存储至内存数据库;再次请求内存数据库是否有数据,如果有,将此数据直接返回给客户端,如果仍然没有,就请求关系型数据库返回数据,并将此数据存入内存数据库。

S400.客户端根据协议向服务端返回查询结果数据;具体的,服务端通过集成servlet请求,重写doPost和doGet方法,针对Get请求在doGet方法里实现客户端数据请求,对于Post请求在doPost方法里实现客户端数据请求。

S500.服务端通过接口向移动端返回查询结果数据。由于netty自身并不能直接公布对外的http接口调用,为了解决WebApp框架下的移动端开发所需的接口调用,通过在服务端上搭建并集成servlet请求,为移动端get请求和post请求提供接口调用入口。

本实施例通过手动搭建netty服务端和客户端程序,实现两个服务器之间的通信以及协议数据互通。通过在服务端上搭建并集成servlet请求,为移动端get请求和post请求提供接口调用入口。服务端通过设置内存哈希表来对每个客户端连接上服务端之后建立的通道channel进行存储,以客户端编号ID为哈希表key,将包含数据通道信息bean为哈希表value,这样当需要向指定客户端发送数据时,通过遍历哈希表即可找到指定客户端通道,并且向此通道来发送和接收数据。通过在客户端建立重连机制来实现因网络问题而造成的断线问题,客户端定期向服务端发送消息并接收服务端回复的消息进行连接通信,如果收到服务端的信息表示连接未关闭则忽略,如果未收到服务端的信息则表示连接断线立即向服务端发起重连,服务端对重新连接上的客户端进行通道进行内存维护,保证了服务端与各个客户端之间的长连接。

本实施例公开的一种基于netty的分布式数据库数据访问控制方法,通过开发并搭建基于netty的服务端与客户端网络应用服务,可以实现公网IP服务端与分布式数据库服务器通信以及分布式数据库高并发远程服务调用问题,并在服务端集成servlet请求为移动端提供数据访问接口入口,可以完成移动端与服务端之间的接口调用。本方法以映射有公网IP的服务端作为数据访问桥梁,通过移动端访问固定公网IP资源的服务端集成的http接口,再与netty客户端进行通信实现分布式数据库数据访问。针对分布式数据库互联网时代高并发数据请求需求,提供了一套完整的从移动端轻松访问各分布式数据库数据的访问流程及方法,并保证了数据请求过程的安全性、可靠性。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。

结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。

对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号