CN105933408B - 一种Redis通用中间件的实现方法及装置 - Google Patents

一种Redis通用中间件的实现方法及装置 Download PDF

Info

Publication number
CN105933408B
CN105933408B CN201610248474.7A CN201610248474A CN105933408B CN 105933408 B CN105933408 B CN 105933408B CN 201610248474 A CN201610248474 A CN 201610248474A CN 105933408 B CN105933408 B CN 105933408B
Authority
CN
China
Prior art keywords
read
middleware
write requests
agent node
redis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610248474.7A
Other languages
English (en)
Other versions
CN105933408A (zh
Inventor
孙黎明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unionpay Co Ltd
Original Assignee
China Unionpay Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201610248474.7A priority Critical patent/CN105933408B/zh
Publication of CN105933408A publication Critical patent/CN105933408A/zh
Application granted granted Critical
Publication of CN105933408B publication Critical patent/CN105933408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2871Implementation details of single intermediate entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种Redis通用中间件的实现方法及装置,该方法包括:中间件接收应用发送的读写请求;所述中间件从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体;所述中间件从所述读写请求对应的处理实体的连接池中获取可用的连接链路,并通过所述连接链路发送所述读写请求,用以解决现有技术访问Redis数据库的技术不通用的问题。

Description

一种Redis通用中间件的实现方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种Redis通用中间件的实现方法及装置。
背景技术
目前web应用系统为了解决高并发带来的性能问题,都会在web应用系统与数据库之间采取缓存层,使用最为广泛的就是Redis(Redis本质上是一个键-值类型的内存数据库)。Redis作为软件和传统数据库之间的缓冲层,操作命令简单,在保证了数据有效性的情况下,同时也保证了高性能。
Redis是一个开源、支持网络、基于内存的key-value(键-值对)数据库。Redis支持存储的数据类型包括:string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希类型)等。对Redis数据库进行访问的过程,大致可以分为读请求和写请求两种。
现有的应用对Redis数据库进行访问的过程如图1所示,以读请求为例,应用的m个读请求存放于请求队列12中,m≥1。为了应对大规模的业务访问,为应用部署多个Redis实例14,每个Redis实例14占用一个Redis端口。应用的请求队列12中的读请求由该请求队列12对应的连接池中的n个线程进行处理,n≥1。对于任一读请求,应用随机分配一个线程进行处理。假设线程1对读请求m进行处理,则线程1读取读请求m的key,并通过哈希算法将key映射到多个Redis端口中的一个,进而通过该Redis端口将读请求下发至与其对应的Redis实例14,并通过该Redis实例14对该读请求m进行处理。
在实际应用时,发现上述技术至少存在以下问题:对Redis数据库访问的前序工作都由应用来完成,而现有的应用对应的开发语言不同,因此对于不同开发语言的应用均需要对应地开发上述访问Redis数据库的处理模块,所以不具有通用性。
发明内容
本发明实施例提供一种Redis通用中间件的实现方法及装置,用以解决现有技术访问Redis数据库的技术不通用的问题。
本发明方法包括一种Redis通用中间件的实现方法,该方法包括:中间件接收应用发送的读写请求;所述中间件从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体;所述中间件从所述读写请求对应的处理实体的连接池中获取可用的连接链路,并通过所述连接链路发送所述读写请求。
基于同样的发明构思,本发明实施例还提供一种Redis通用中间件,包括:接收单元,用于接收应用发送的读写请求;确定单元,用于从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体;处理单元,用于从所述读写请求对应的处理实体的连接池中获取可用的连接链路,并通过所述连接链路发送所述读写请求。
本发明实施例通过一个通用的中间件实现现有应用访问Redis数据库的过程,即该中间件接收应用发送的读写请求,并从从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体,然后从所述读写请求对应的处理实体的连接池中获取可用的连接链路,并通过所述连接链路发送所述读写请求,因为中间件实现了现有应用访问Redis数据库的过程,其它应用通过调用中间件的接口既可以访问Redis数据库,而不需要进行额外的开发,使得这一访问Redis数据库的技术具有通用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中应用对Redis数据库进行访问的过程;
图2为本发明实施例提供一种Redis通用中间件的实现方法流程示意图;
图3为本发明实施例提供一种包含Redis通用中间件的Redis集群架构;
图4为本发明实施例提供一种包含Redis通用中间件、代理节点的Redis集群架构;
图5为本发明实施例还提供一种Redis通用中间件。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
参见图2所示,本发明实施例提供一种Redis通用中间件的实现方法流程示意图,具体地实现方法包括:
步骤S101,中间件接收应用发送的读写请求。
步骤S102,所述中间件从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体。
步骤S103,所述中间件从所述读写请求对应的处理实体的连接池中获取可用的连接链路,并通过所述连接链路发送所述读写请求。
因为在实际应用中传统的Redis的部署方式有多种结构,其中有两种比较典型的部署方式,第一种部署方式是Redis集群中有若干实例组,应用程序与多个实例组直连,即应用程序连接有多组主从配合的服务器,每个主服务器中运行若干负责数据备份的实例;另一种部署方式则是较第一种部署方式多个代理节点,由代理节点管控若干个实例组,由代理节点实现数据分片的功能,即应用程序发送的读写请求通过代理节点分配至相应的实例组处理。
考虑到本发明实施例中的通用的中间件需要满足上述两种部署结构,所以在步骤S102中,与所述中间件连接的处理实体指的是每组主从配合的服务器或者是代理节点。
一种实施方式是:假设与所述中间件连接的处理实体为Redis服务器;所述中间件从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体,包括:
根据所述读写请求中的数据主键值,确定对应的Redis服务器;
根据所述数据主键值进行哈希运算生成的哈希值,确定对应的所述Redis服务器的端口;根据确定的端口确定所述读写请求对应的Redis实例。
也就是说,对于第一种部署结构,本发明实施例通过增加一种通用的中间件来代替每个应用程序访问Redis数据库的功能,即通用的中间件通过接口连接应用程序,接收来自应用程序的读写请求,然后根据读写请求中的数据主键值,也就是key找到对应的主服务器,因为每个主服务器中运行着多个实例,所以在根据key进行hash(哈希)运算找到对应的端口,进而根据确定的端口找到该条读写请求对应的Redis实例。
例如,图3所示,应用连接通用的中间件,中间件下面又连接两个主从配合的Redis服务器,每个Redis服务器中运行两个Redis实例,针对中间件来讲,可以包含四个功能部分,分别是数据分片、负载均衡、连接池和连接链路四个部分。
其中,数据分片指的是将数据主键按照一定的分组规则投放到相应的Redis服务器。本申请是采用通用的hash分片算法,即根据数据主键值,确定对应的Redis服务器;再根据所述数据主键值进行哈希运算生成的哈希值,确定对应的所述Redis服务器的端口;根据确定的端口确定所述读写请求对应的Redis实例,当然也可以根据实际需要使用其它的分片算法。负载均衡功能指的是采用RoundRobin(轮询调度)和WeightedRoundRobin(权重轮询调度)两种负载策略对每个Redis服务器内的实例进行调度。连接池是是由中间件与Redis服务器之间进行通信的连接链路组成的,即连接池用于缓存中间件与Redis实例之间的长连接。同时还具有其他一些基本功能,如维持最小连接数、限制最大连接数和空闲连接数等;同时它还支持一些高级功能,如请求队列、获取连接超时限制、获取连接时检测、归还连接时检测等。中间件可以根据需要使用这些功能,以使提高程序性能。
在这种部署结构中,对于中间件来说,中间件收到应用程序发来的读写请求,首先实现数据分片功能,即将根据读写请求中的数据主键值确定本条读写请求对应的哪个Redis服务器,再根据数据主键值进行哈希运算生成的哈希值,确定对应的所述Redis服务器的端口;根据确定的端口确定所述读写请求对应的Redis实例。当确定好Redis实例之后,中间件从该Redis实例对应的连接池中获取一个长连接,这样就可以通过长连接发送该条读写请求了。
进一步地,为了避免Redis实例发生故障,造成读写失败,中间件定期向所述读写请求对应的Redis实例发送心跳检测;若心跳检测成功,则从心跳检测成功的Redis实例对应的连接池中获取可用的连接链路。也就是说,启动单独的线程定期地向每个Redis实例发送检测报文,根据其响应来判断其健康状态。另外,也向外部调用者开放了反馈接口,当调用者读写Redis遇到异常时,可以调用反馈接口,以便及时对Redis实例的健康状态进行更新。
另一种实施方式是:假设与所述中间件连接的处理实体为代理节点;
所述中间件从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体,包括:所述中间件根据各代理节点的工作状态,确定所述读写请求对应的代理节点;
所述通过所述连接链路发送所述读写请求,包括:
所述读写请求对应的代理节点根据所述读写请求中的数据主键值,确定对应的Redis实例;所述读写请求对应的代理节点与所述Redis实例建立链路并将所述读写请求发送给所述对应的Redis实例。
也就是说,对于第二种部署结构,本发明实施例中的通用的中间件通过接口连接应用程序,接收来自应用程序的读写请求,然后根据各代理节点的工作状态,确定所述读写请求对应的代理节点。其中,确定代理节点的方法可以按照如下方式确定,即所述中间件利用轮询调度从与所述中间件连接的代理节点中选择所述读写请求对应的代理节点;或者,所述中间件根据与所述中间件连接的代理节点运行状态,确定每个代理节点的权重,并根据所述权重确定所述读写请求对应的代理节点。
所谓轮询调度指的是假设中间件连接两个代理节点,那么中间件发来的第一个读写请求发送给第一个代理节点,第二个读写请求发送给第二个代理节点,然后第三个读写请求再发送给第一个代理节点,依次类推,这样就可以做到两个代理节点之间的负载均衡;当然,也可以预先根据每个代理节点运行的忙闲状态设定权重,权重小的证明代理节点较忙,权重大的证明代理节点处于空闲状态,这样,中间件就可以选择权重大的代理节点处理读写请求,因此也使得代理节点之间的负载做到均衡。
当代理节点确定之后,对应的代理节点根据读写请求中的数据主键值,也就是key找到对应的主服务器,因为每个主服务器中运行着多个实例,所以在根据key进行hash(哈希)运算找到对应的端口,进而根据确定的端口找到该条读写请求对应的Redis实例。
例如,图4所示,应用连接通用的中间件,中间件下面又连接两个代理节点,代理节点配合使用脚本监听Sentinal管控每个Redis服务器服务器,针对中间件来讲,可以包含四个功能部分,分别是负载均衡、连接池和连接链路四个部分。
其中,负载均衡功能指的是采用RoundRobin(轮询调度)和WeightedRoundRobin(权重轮询调度)两种负载策略对每个代理节点进行调度。连接池是是由中间件与代理节点之间进行通信的连接链路组成的,即连接池用于缓存中间件与代理节点之间的长连接。另外数据分片的功能则是由代理节点实现。
在这种部署结构中,对于中间件来说,中间件收到应用程序发来的读写请求,首先确定本条读写请求对应的哪个代理节点,当确定好代理节点之后,中间件从对应的连接池中选择一条连接链路,将读写请求传送给代理节点,代理节点再根据读写请求中的数据主键值确定本条读写请求对应的哪个Redis服务器,再根据数据主键值进行哈希运算生成的哈希值,确定对应的所述Redis服务器的端口,并根据确定的端口确定所述读写请求对应的Redis实例。当确定好Redis实例之后,中间件从该Redis实例对应的连接池中获取一个长连接,这样就可以通过长连接发送该条读写请求了。
因为所述中间件为各代理节点设置有连接池,每个连接池中包括多个连接链路;进一步地,所述中间件向所述读写请求对应的代理节点的连接池中每条连接链路发送心跳检测;若心跳检测成功,则从所述代理节点对应的连接池中中获取可用的连接链路。也就是说,启动单独的线程定期地向代理节点对应的连接池中每条连接链路发送检测报文,根据其响应来判断其健康状态。若心跳检测成功,则证明对应的连接链路可用,因此可以从可用的连接链路中任意选择一条。
进一步地,所述中间件确定代理节点不可用时,停止向所述不可用的代理节点发送读写请求;检测所述不可用的代理节点对应的读写请求的执行状态,若执行完毕,则将所述不可用的代理节点删除。
可以理解的是,当代理节点不再可用时,与该代理节点连接的Redis服务器中的实例可能还在运行,此时,就需要监测该部分实例的运行状态,判断该部分实例中的读写请求处理完成时,再将该代理节点删除,就可以避免对正常的任务处理造成影响。
基于相同的技术构思,本发明实施例还提供一种Redis通用中间件的实现装置,该装置可执行上述方法实施例。本发明实施例提供的装置如图5所示,包括:接收单元401、确定单元402、处理单元403,其中:
接收单元401,用于接收应用发送的读写请求;
确定单元402,用于从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体;
处理单元403,用于从所述读写请求对应的处理实体的连接池中获取可用的连接链路,并通过所述连接链路发送所述读写请求。
进一步地,若与所述中间件连接的处理实体为Redis服务器;所述确定单元402具体用于:根据所述读写请求中的数据主键值,确定对应的Redis服务器;根据所述数据主键值进行哈希运算生成的哈希值,确定对应的所述Redis服务器的端口;根据确定的端口确定所述读写请求对应的Redis实例。
进一步地,所述处理单元403具体用于:向所述读写请求对应的Redis实例发送心跳检测;
若心跳检测成功,则从心跳检测成功的Redis实例对应的连接池中获取空闲的连接链路。
进一步地,若与所述中间件连接的处理实体为代理节点;
所述确定单元402具体用于:所述中间件根据各代理节点的工作状态,确定所述读写请求对应的代理节点;
所述处理单元403具体用于:所述读写请求对应的代理节点根据所述读写请求中的数据主键值,确定对应的Redis实例;所述读写请求对应的代理节点与所述Redis实例建立链路并将所述读写请求发送给所述对应的Redis实例。
进一步地,所述处理单元403具体用于:为各代理节点设置有连接池,每个连接池中包括多个连接链路;
向所述读写请求对应的代理节点的连接池中每条连接链路发送心跳检测;
若心跳检测成功,则从所述代理节点对应的连接池中中获取可用的连接链路。
进一步地,所述处理单元403还用于:确定代理节点不可用时,停止向不可用的代理节点发送读写请求;
检测所述不可用的代理节点对应的读写请求的执行状态,若执行完毕,则将所述不可用的代理节点删除。
进一步地,所述确定单元402具体用于:利用轮询调度从与所述中间件连接的代理节点中选择所述读写请求对应的代理节点;
或者,根据与所述中间件连接的代理节点运行状态,确定每个处理实体的权重,并根据所述权重确定所述读写请求对应的代理节点。
综上所述,本发明实施例通过一个通用的中间件实现现有应用访问Redis数据库的过程,即该中间件接收应用发送的读写请求,并从从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体,然后从所述读写请求对应的处理实体的连接池中获取可用的连接链路,并通过所述连接链路发送所述读写请求,因为中间件实现了现有应用访问Redis数据库的过程,其它应用通过调用中间件的接口既可以访问Redis数据库,而不需要进行额外的开发,使得这一访问Redis数据库的技术具有通用性,另外,通过心跳检测,获取可用的连接链路,也可以进一步地避免因代理节点或者Redis服务器发生故障造成的读写失败的问题。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种Redis通用中间件的实现方法,其特征在于,该方法包括:
中间件接收应用发送的读写请求;
所述中间件从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体;
当与所述中间件连接的处理实体为Redis服务器,所述中间件根据所述读写请求中的数据主键值,确定对应的Redis服务器;基于根据所述数据主键值进行哈希运算生成的哈希值,确定对应的所述Redis服务器的端口;根据确定的端口确定所述读写请求对应的Redis实例;所述中间件从所述读写请求对应的Redis实例的连接池中获取可用的连接链路,并通过所述连接链路发送所述读写请求;
当与所述中间件连接的处理实体为代理节点,所述中间件根据各代理节点的工作状态,确定所述读写请求对应的代理节点;所述中间件从所述读写请求对应的代理节点的连接池中获取可用的连接链路,将读写请求传送给所述读写请求对应的代理节点;所述读写请求对应的代理节点根据所述读写请求中的数据主键值,确定对应的Redis实例;所述读写请求对应的代理节点与所述Redis实例建立链路并将所述读写请求发送给所述对应的Redis实例。
2.如权利要求1所述的方法,其特征在于,当与所述中间件连接的处理实体为Redis服务器,所述中间件从所述读写请求对应的Redis实例的连接池中获取可用的连接链路,包括:
所述中间件向所述读写请求对应的Redis实例发送心跳检测;
若心跳检测成功,则所述中间件从心跳检测成功的Redis实例对应的连接池中获取可用的连接链路。
3.如权利要求1所述的方法,其特征在于,当与所述中间件连接的处理实体为代理节点,所述中间件从所述读写请求对应的代理节点的连接池中获取可用的连接链路,包括:
所述中间件为各代理节点设置有连接池,每个连接池中包括多个连接链路;
所述中间件向所述读写请求对应的代理节点的连接池中每条连接链路发送心跳检测;
若心跳检测成功,则从所述读写请求对应的代理节点的连接池中获取可用的连接链路。
4.如权利要求1所述的方法,其特征在于,还包括:
所述中间件确定代理节点不可用时,停止向不可用的代理节点发送读写请求;
检测所述不可用的代理节点对应的读写请求的执行状态,若执行完毕,则将所述不可用的代理节点删除。
5.如权利要求1~4任一所述的方法,其特征在于,所述中间件从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体,包括:
所述中间件利用轮询调度从与所述中间件连接的代理节点中选择所述读写请求对应的代理节点;
或者,所述中间件根据与所述中间件连接的代理节点的运行状态,确定每个代理节点的权重,并根据所述权重确定所述读写请求对应的代理节点。
6.一种Redis通用中间件,其特征在于,包括:
接收单元,用于接收应用发送的读写请求;
确定单元,用于从与所述中间件连接的处理实体中确定所述读写请求对应的处理实体;当与所述中间件连接的处理实体为Redis服务器,根据所述读写请求中的数据主键值,确定对应的Redis服务器;基于根据所述数据主键值进行哈希运算生成的哈希值,确定对应的所述Redis服务器的端口;根据确定的端口确定所述读写请求对应的Redis实例;当与所述中间件连接的处理实体为代理节点,根据各代理节点的工作状态,确定所述读写请求对应的代理节点;
处理单元,用于当与所述中间件连接的处理实体为Redis服务器,从所述读写请求对应的Redis实例的连接池中获取可用的连接链路,并通过所述连接链路发送所述读写请求;
当与所述中间件连接的处理实体为代理节点,所述中间件从所述读写请求对应的代理节点的连接池中获取可用的连接链路,将读写请求传送给所述读写请求对应的代理节点;
其中,所述读写请求对应的代理节点根据所述读写请求中的数据主键值,确定对应的Redis实例;所述读写请求对应的代理节点与所述Redis实例建立链路并将所述读写请求发送给所述对应的Redis实例。
7.如权利要求6所述的中间件,其特征在于,所述处理单元具体用于:
向所述读写请求对应的Redis实例发送心跳检测;
若心跳检测成功,则从心跳检测成功的Redis实例对应的连接池中获取空闲的连接链路。
8.如权利要求6所述的中间件,其特征在于,当与所述中间件连接的处理实体为代理节点,所述处理单元具体用于:
为各代理节点设置有连接池,每个连接池中包括多个连接链路;
向所述读写请求对应的代理节点的连接池中每条连接链路发送心跳检测;
若心跳检测成功,则从所述读写请求对应的代理节点的连接池中获取可用的连接链路。
9.如权利要求6所述的中间件,其特征在于,所述处理单元还用于:
确定代理节点不可用时,停止向不可用的代理节点发送读写请求;
检测所述不可用的代理节点对应的读写请求的执行状态,若执行完毕,则将所述不可用的代理节点删除。
10.如权利要求6~9任一项所述的中间件,其特征在于,所述确定单元具体用于:
利用轮询调度从与所述中间件连接的代理节点中选择所述读写请求对应的代理节点;
或者,根据与所述中间件连接的代理节点的运行状态,确定每个代理节点的权重,并根据所述权重确定所述读写请求对应的代理节点。
CN201610248474.7A 2016-04-20 2016-04-20 一种Redis通用中间件的实现方法及装置 Active CN105933408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610248474.7A CN105933408B (zh) 2016-04-20 2016-04-20 一种Redis通用中间件的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610248474.7A CN105933408B (zh) 2016-04-20 2016-04-20 一种Redis通用中间件的实现方法及装置

Publications (2)

Publication Number Publication Date
CN105933408A CN105933408A (zh) 2016-09-07
CN105933408B true CN105933408B (zh) 2019-08-13

Family

ID=56838609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610248474.7A Active CN105933408B (zh) 2016-04-20 2016-04-20 一种Redis通用中间件的实现方法及装置

Country Status (1)

Country Link
CN (1) CN105933408B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874837B (zh) * 2017-05-16 2021-09-03 北京京东尚科信息技术有限公司 数据库分库方法、装置、中间件及存储介质和电子设备
CN109150936A (zh) * 2017-06-19 2019-01-04 北京宝兰德软件股份有限公司 一种分布式集群中会话对象Session的共享方法及装置
CN107357853B (zh) * 2017-06-28 2020-12-08 广州华多网络科技有限公司 一种redis控制台的操作方法、装置及计算机系统
CN108182241B (zh) * 2017-12-28 2021-03-26 深圳市博实结科技有限公司 一种数据交互的优化方法、装置、服务器及存储介质
CN108183961A (zh) * 2018-01-04 2018-06-19 中电福富信息科技有限公司 一种基于Redis的分布式缓存方法
CN109815287A (zh) * 2019-01-30 2019-05-28 网易(杭州)网络有限公司 一种数据库访问系统
CN109639841A (zh) * 2019-02-25 2019-04-16 北京云中融信网络科技有限公司 网络连接系统及方法
CN110784549A (zh) * 2019-11-01 2020-02-11 深圳市网心科技有限公司 网络节点选择方法、装置、第一网络节点及存储介质
CN112698926B (zh) * 2021-03-25 2021-07-02 成都新希望金融信息有限公司 数据处理方法、装置、设备、存储介质及系统
CN114064694A (zh) * 2021-11-18 2022-02-18 北京云上曲率科技有限公司 基于数据集的数据库代理方法及装置
CN115174440B (zh) * 2022-07-11 2024-03-26 中国银行股份有限公司 连通性检测方法、装置、存储介质和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183377A (zh) * 2007-12-10 2008-05-21 华中科技大学 一种基于消息中间件的高可用性数据库集群
CN103646111A (zh) * 2013-12-25 2014-03-19 普元信息技术股份有限公司 大数据环境下实现实时数据关联的系统及方法
CN104199957A (zh) * 2014-09-17 2014-12-10 合一网络技术(北京)有限公司 一种Redis通用代理的实现方法
CN104463492A (zh) * 2014-12-23 2015-03-25 国家电网公司 一种电力系统云仿真平台的运营管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558048B2 (en) * 2011-09-30 2017-01-31 Oracle International Corporation System and method for managing message queues for multinode applications in a transactional middleware machine environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183377A (zh) * 2007-12-10 2008-05-21 华中科技大学 一种基于消息中间件的高可用性数据库集群
CN103646111A (zh) * 2013-12-25 2014-03-19 普元信息技术股份有限公司 大数据环境下实现实时数据关联的系统及方法
CN104199957A (zh) * 2014-09-17 2014-12-10 合一网络技术(北京)有限公司 一种Redis通用代理的实现方法
CN104463492A (zh) * 2014-12-23 2015-03-25 国家电网公司 一种电力系统云仿真平台的运营管理方法

Also Published As

Publication number Publication date
CN105933408A (zh) 2016-09-07

Similar Documents

Publication Publication Date Title
CN105933408B (zh) 一种Redis通用中间件的实现方法及装置
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
CN106899680B (zh) 多区块链的分片处理方法和装置
CN107832153B (zh) 一种Hadoop集群资源自适应分配方法
US7444459B2 (en) Methods and systems for load balancing of virtual machines in clustered processors using storage related load information
CN109075988B (zh) 任务调度和资源发放系统和方法
US9703610B2 (en) Extensible centralized dynamic resource distribution in a clustered data grid
JP5664098B2 (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
CN103607424B (zh) 一种服务器连接方法及服务器系统
CN105956481B (zh) 一种数据处理方法及其装置
CN112162865A (zh) 服务器的调度方法、装置和服务器
CN103812949B (zh) 一种面向实时云平台的任务调度与资源分配方法及系统
CN109614227A (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
CN105827678B (zh) 一种基于高可用架构下的通信方法和节点
CN107070709B (zh) 一种基于底层numa感知的nfv实现方法
CN110990154A (zh) 一种大数据应用优化方法、装置及存储介质
CN109726004A (zh) 一种数据处理方法及装置
US11816511B1 (en) Virtual partitioning of a shared message bus
CN108076103A (zh) 一种消息处理方法、系统及消息生产者集群
CN105975345A (zh) 一种基于分布式内存的视频帧数据动态均衡存储管理方法
WO2018142592A1 (ja) 情報処理システム及び情報処理方法
CN111078516A (zh) 分布式性能测试方法、装置、电子设备
CN113377866A (zh) 一种虚拟化数据库代理服务的负载均衡方法及装置
Jiang et al. The limit of horizontal scaling in public clouds
CN106059940A (zh) 一种流量控制方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant