基于中间件的数据库集群通信方法及数据库集群中间件技术

技术编号:38267595 阅读:30 留言:0更新日期:2023-07-27 10:24
本发明专利技术公开了一种基于中间件的数据库集群通信方法及数据库集群中间件,用以解决目前数据库中间件采用进程通信模式在面向IO频繁时性能降低的问题。基于中间件的数据库集群通信方法包括:基于前端应用的通信连接请求与前端应用建立连接并为其创建一个具有独立协程缓冲区的协程;接收前端应用第一次发送的第一协议包并确定其要发往的目标后端,将第一协议包缓冲至协程缓冲区;接收前端应用当前发送的当前协议包并确定其要发往的目标后端;判断当前协议包与协程缓冲区中的协议包要发往的目标后端是否一致,若是,将当前协议包缓冲至协程缓冲区,否则,将协程缓冲区中存储的所有协议包一次性发送至对应的目标后端,并将当前协议包缓冲至协程缓冲区。议包缓冲至协程缓冲区。议包缓冲至协程缓冲区。

【技术实现步骤摘要】
基于中间件的数据库集群通信方法及数据库集群中间件


[0001]本专利技术涉及数据库集群
,尤其涉及一种基于中间件的数据库集群通信方法及数据库集群中间件。

技术介绍

[0002]当在数据库集群中使用中间件时,一般会使用读写分离技术。根据数据库通信协议的协议包的不同而发送至集群中不同的数据库节点,以提高数据库集群的整体性能。而数据库中间件的一个最基本的功能就是与前端和后端建立连接,并及时转发获取的消息至目标端。
[0003]目前的数据库中间件(如pgpool)是采用多进程实现的通信工具。多进程间所有资源皆独立,并不会相互干扰。其通信方法是读取到前后端消息后直接转发,扩展协议场景下也能缓冲2~3个特定的协议包后即做转发。但该方案存在以下缺陷:当处于等待读写状态时,则进程阻塞,从而使进程处于暂停状态;当并发量较大时,内核会不断的做进程切换,从而导致切换过程本身耗费了大量时间。导致在高并发,读写IO频繁的情况下,pgpool并不会对性能有明显的提升。

技术实现思路

[0004]本专利技术实施例提供一种基于中间件的数据库集群通本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于中间件的数据库集群通信方法,其特征在于,包括:接收前端应用发起的通信连接请求,并基于所述通信连接请求与所述前端应用建立连接、为所述前端应用创建一个对应的协程,所述协程具有一个独立的协程缓冲区;接收所述前端应用第一次发送的第一协议包,通过对所述第一协议包进行协议分析确定所述第一协议包要发往的目标后端,并将所述第一协议包缓冲至所述协程缓冲区;接收所述前端应用当前发送的当前协议包,通过对所述当前协议包进行协议分析确定所述当前协议包要发往的目标后端;判断所述当前协议包要发往的目标后端与所述协程缓冲区中存储的协议包对应的目标后端是否一致,若是,则将所述当前协议包缓冲至所述协程缓冲区,否则,将所述协程缓冲区中存储的所有协议包一次性发送至对应的目标后端,并将所述当前协议包缓冲至所述协程缓冲区。2.如权利要求1所述的方法,其特征在于,所述协程本地缓冲区的实现方法还包括:当所述当前协议包要发往的目标后端与所述协程缓冲区中存储的协议包对应的目标后端一致时,统计所述协程缓冲区中协议包的个数;若所述协程缓冲区中协议包的个数没有超过预设阈值,则将所述当前协议包缓冲至所述协程缓冲区,否则,将所述当前协议包连同所述协程缓冲区中存储的所有协议包一次性发送至对应的目标后端。3.如权利要求1所述的方法,其特征在于,所述协程本地缓冲区的实现方法还包括:根据数据库通信协议,将协议包分为立刻处理类型和非立刻处理类型...

【专利技术属性】
技术研发人员:谭洋苗健吕新杰
申请(专利权)人:瀚高基础软件股份有限公司
类型:发明
国别省市:

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

1