CN111435942A - redis集群访问方法、系统、中间件、介质及设备 - Google Patents
redis集群访问方法、系统、中间件、介质及设备 Download PDFInfo
- Publication number
- CN111435942A CN111435942A CN201910032574.XA CN201910032574A CN111435942A CN 111435942 A CN111435942 A CN 111435942A CN 201910032574 A CN201910032574 A CN 201910032574A CN 111435942 A CN111435942 A CN 111435942A
- Authority
- CN
- China
- Prior art keywords
- redis
- server
- machine room
- proxy
- cluster
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种远程字典服务器redis集群访问方法、系统、中间件、计算机可读介质及电子设备,涉及通信技术领域,该方法包括:将redis集群数据和redis集群中redis服务器的机房属性存储到配置中心;将proxy数据及proxy代理服务器的机房属性存储到配置中心;在接收到业务机发送访问请求后,根据所述访问请求中的redis服务器的地址查询所述配置中心,得到与redis服务器具有相同机房属性的proxy代理服务器。本发明实施例的技术方案,通过查询配置中心数据为redis服务器查询具有相同机房属性的proxy代理服务器以实现访问redis集群,减少了人工操作,提高了运维效率。
Description
技术领域
本发明涉及无线通信技术领域,具体而言,涉及一种redis集群访问方法、系统、中间件、计算机可读介质及电子设备。
背景技术
互联网公司的业务系统中,会建立很多redis(REmote DIctionary Server,远程字典服务器)集群以存放一些商品属性等基础属性,为不同的业务提供基础数据。其中,redis是一种key-value内存型存储系统。
随着公司规模不断扩大,公司在多地建设了自己的互联网数据中心机房,部署了业务系统,因此redis集群会接受来自不同机房的请求。如果redis请求没有区分机房,网络之间的差距会间接影响服务性能。这是因为,尽管不同机房网络之间都通过骨干专线连接,但是两地之间耗时依然会有0.5ms左右的时间差,不同机房耗时会不一样,而同机房访问的耗时却只有0.02ms左右。
这就要求实现业务同机房访问。目前实现业务同机房访问的一般方法为:部署redis集群后,手工维护proxy服务配置文件中指定格式的redis IP列表,部署启动proxy。这时,不同机房业务机器上线时候通过指定的不同机房proxy地址实现对redis集群的访问。
采用以上方案时,每次redis集群变更或者扩容都需要手工更新proxy配置文件中的redis IP列表,这导致维护操作繁琐,并且有误操作的可能性,浪费运维工时。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施例的目的在于提供一种访问redis集群的方法、系统、中间件、计算机可读介质及电子设备,进而至少在一定程度上克服访问redis集群需要手工更新proxy配置文件的问题。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明实施例的第一方面,提供了一种redis集群访问方法,应用于中间件,所述中间件与redis集群、proxy代理服务器和配置中心分别连接,所述方法包括:获取redis集群数据和redis集群中redis服务器的机房属性;将所述redis集群数据和所述redis服务器的机房属性存储到所述配置中心;获取proxy数据和proxy代理服务器的机房属性;将所述proxy数据及所述proxy代理服务器的机房属性存储到所述配置中心;在接收到业务机发送访问请求后,根据所述访问请求中的redis服务器的地址查询所述配置中心,得到与redis服务器具有相同机房属性的proxy代理服务器。
上述方案中,所述redis服务器包括redis主服务器和redis从服务器;所述redis集群数据包括redis集群名称、redis主服务器地址、redis从服务器地址和端口以及redis从服务器在所述redis集群中的位置;所述proxy数据包括proxy代理服务器的地址、端口、状态以及对应的redis集群名称。
上述方案中,所述得到与redis服务器具有相同机房属性的proxy代理服务器之后,所述方法还包括:定期从所述配置中心获取redis集群的redis主服务器地址;根据所述redis主服务器地址扫描所述redis集群;在确定所述redis集群中的redis从服务器增加、减少或者变更后,将更新后的redis集群数据存储到所述配置中心;将增加、减少或者变更的redis从服务器的增加、减少或者变更信息发送给与所述redis从服务器具有相同机房属性的proxy代理服务器,使所述proxy代理服务器更新所述增加、减少或者变更信息到配置文件。
上述方案中,所述获取redis集群数据,包括:获取redis集群名称和redis主服务器地址;根据所述redis主服务器地址扫描所述redis集群,获取各个redis从服务器的地址、端口以及所述redis从服务器在集群中所处的位置。
上述方案中,所述得到与redis服务器具有相同机房属性的proxy代理服务器之前,所述方法还包括:将proxy代理服务器的机房属性与所述redis服务器的机房属性进行匹配,得到匹配结果;根据所述匹配结果确定与redis服务器具有相同机房属性的proxy代理服务器。
上述方案中,所述获取redis服务器的机房属性,包括:通过机房与IP网段对应的接口查询所述redis服务器的机房属性;和/或,所述获取proxy代理服务器的机房属性,包括:通过机房与IP网段对应的接口查询所述proxy代理服务器的机房属性。
上述方案中,将所述proxy数据及所述proxy代理服务器的机房属性存储到所述配置中心之后,所述方法还包括:将查询所述配置中心里与proxy代理服务器同机房的redis从服务器得到的查询数据发送给所述proxy代理服务器,使所述proxy代理服务器根据所述查询数据更新配置文件。
根据本发明实施例的第二方面,提供了一种中间件,应用于redis集群访问系统,所述中间件包括:第一数据获取单元,用于获取redis集群数据和redis集群中redis服务器的机房属性;第一存储单元,用于将所述redis集群数据和所述redis服务器的机房属性存储到配置中心;第二数据获取单元,用于获取proxy数据和proxy代理服务器的机房属性;第二存储单元,用于将所述proxy数据及所述proxy代理服务器的机房属性存储到所述配置中心;查询单元,用于在接收到业务机发送访问请求后,根据所述访问请求中的redis服务器的地址查询所述配置中心,得到与redis服务器具有相同机房属性的proxy代理服务器。
上述方案中,所述redis集群数据包括redis集群名称、redis主服务器地址、redis从服务器地址,以及redis从服务器在所述redis集群中的位置,所述proxy数据包括proxy代理服务器的地址、端口、状态以及对应的redis集群名称。
上述方案中,所述中间件还包括定期获取单元,用于定期从所述配置中心获取redis集群的redis主服务器地址,以及用于根据所述redis主服务器地址扫描所述redis集群;所述第一存储单元还用于在确定所述redis集群中的redis从服务器增加、减少或者变更后,将更新后的redis集群数据存储到所述配置中心;所述查询单元还用于将增加、减少或者变更的redis从服务器的增加、减少或者变更信息发送给与所述redis从服务器具有相同机房属性的proxy代理服务器,使所述proxy代理服务器更新所述增加、减少或者变更信息到配置文件。
上述方案中,所述第一数据获取单元,包括:主服务器数据获取子单元,用于获取redis集群名称和redis主服务器地址;从服务器数据获取子单元,用于根据redis主服务器地址扫描所述redis集群,获取各个redis从服务器的地址、端口以及所述redis从服务器在集群中所处的位置。
上述方案中,所述查询单元,包括:匹配子单元,用于将proxy代理服务器的机房属性与所述redis服务器的机房属性进行匹配,得到匹配结果;查询子单元,用于根据所述匹配结果确定与redis服务器具有相同机房属性的proxy代理服务器。
上述方案中,所述第一数据获取单元还用于:通过机房与IP网段对应的接口查询所述redis服务器的机房属性;和/或,所述第二数据获取单元还用于:通过机房与IP网段对应的接口查询所述proxy代理服务器的机房属性。
上述方案中,所述中间件还包括发送单元,用于:将查询所述配置中心里与proxy代理服务器同机房的redis从服务器得到的查询数据发送给所述proxy代理服务器,使所述proxy代理服务器根据所述查询数据更新配置文件。
根据本发明实施例的第三方面,提供了一种redis集群访问系统,包括上述实施例中第二方面所述的中间件,还包括配置中心,其中所述配置中心用于存储所述中间件获取的redis集群数据和redis集群中redis服务器的机房属性,以及存储所述中间件获取的proxy数据及proxy代理服务器的机房属性。
根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方面所述的redis集群访问方法。
根据本发明实施例的第五方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第一方面所述的redis集群访问方法。
本发明实施例提供的技术方案可以包括以下有益效果:
在本发明的一些实施例所提供的技术方案中,将redis服务器的机房属性和proxy代理服务器的机房属性存储于配置中心,通过查询配置中心数据为redis服务器查询具有相同机房属性的proxy代理服务器以实现对redis集群访问,减少了人工操作,提高了运维效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本发明一个实施例的redis集群访问方法的流程图。
图2示出了相关技术中的访问redis集群的系统示意图;
图3示出了根据本发明一个实施例的访问redis集群的系统示意图;
图4示出了根据本发明一个实施例的访问redis集群的数据信息传输示意图;
图5示意性示出了根据本发明一个实施例的应用于redis集群访问系统的中间件的方框图;
图6示意性示出了根据本发明的另一个实施例的应用于redis集群访问系统的中间件的方框图;
图7示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示意性示出了本公开的示例性实施方式的访问redis集群的方法。根据本公开的示例性实施方式,该方法应用于中间件,中间件与redis集群、proxy代理服务器和配置中心分别连接,参考图1,该访问redis集群的方法可以包括以下步骤:
步骤S102,获取redis集群数据和redis集群中redis服务器的机房属性。
步骤S104,将redis集群数据和redis服务器的机房属性存储到配置中心。
步骤S106,获取proxy数据和proxy代理服务器的机房属性。
步骤S108,将proxy数据及proxy代理服务器的机房属性存储到配置中心。
步骤S110,在接收到业务机发送访问请求后,根据访问请求中的redis服务器的地址查询配置中心,得到与redis服务器具有相同机房属性的proxy代理服务器。
本发明实施例提供的技术方案将redis服务器的机房属性和proxy代理服务器的机房属性存储于配置中心,通过查询配置中心数据为redis服务器查询具有相同机房属性的proxy代理服务器,以实现对redis集群的访问。该方案减少了人工操作,提高了运维效率。
具体地,如图2所示,一些技术中,部署redis集群后,需手工维护proxy代理服务器配置文件中指定格式的redis服务器IP列表。这样,部署并启动proxy代理服务器后,不同机房的业务机上线时通过指定的不同机房proxy代理服务器地址访问redis集群的数据。其中,redis服务器包括redis主服务器和redis从服务器;如图2所示,redis集群包括redis主服务器201和从服务器202以及从服务器203,proxy代理服务器204是业务机205读取redis集群数据的入口,有负载均衡功能。
如图3所示,在本公开的示例性实施例中,将redis集群数据及redis服务器的机房属性存放在配置中心307后,通过中间件306实时查询与redis服务器具有相同机房属性的proxy代理服务器并告知给proxy代理服务器,使得proxy代理服务器可以实时自动更新配置文件以访问同机房的redis服务器。这里,业务机305通过proxy代理服务器304读取redis集群数据,redis集群包括redis主服务器301、从服务器302以及从服务器303,中间件306为dashboard。其中,如图4所示,中间件401具有向配置中心404注册和查询信息,扫描redis集群402以及将查询到的信息通知proxy代理服务器403的功能。其中,中间件401通过机房与IP网段对应接口405查询机房信息。采用该方案,可以不必手工配置proxy代理服务器的配置文件,提高了运维效率。
在本公开示例性实施例中,需要基于Etcd或zk分布式的键值对数据存储系统搭建配置中心以及部署dashboard服务。结合该中间件和配置中心,可以实现访问redis集群,减少了人工操作,提高了运维效率。
在本公开示例性实施例中,在部署redis集群后,redis集群部署程序主动把redis集群名称和redis主服务器地址告知dashboard。
在本公开示例性实施例中步骤S102获取的redis集群数据包括redis集群名称、redis主服务器地址、redis从服务器地址和端口以及redis从服务器在redis集群中的位置。具体地,在步骤S102中,dashboard首先获取redis集群名称和redis主服务器地址,并根据redis主服务器地址扫描redis集群,获取各个redis从服务器的地址、端口以及redis从服务器在集群中所处的位置。采用该方案时,dashboard可以根据redis集群名称和redis主服务器地址扫描redis集群,以实时获取redis集群状态通知proxy代理服务器,不需要人工操作,效率较高。
在步骤S102中,获取redis服务器的机房属性时,需要通过机房与IP网段对应的接口查询redis服务器的机房属性。这样,dashboard可以为redis服务器打上机房标签。机房与IP网段对应的接口可以为存储机房与IP网段对应的数据库的接口,但并不局限于此。采用该方案相对于人工查询redis服务器的机房属性,自动化程度较高,效率较高。
在步骤S104中,dashboard把redis集群名称、redis服务器的IP地址、端口号、角色、状态、机房属性、位置等redis集群数据存入配置中心。这样,dashboard可以方便查询redis集群数据。
在本公开示例性实施例中,需要部署proxy代理服务器。proxy代理服务器启动之后与dashboard建立连接,发送proxy代理服务器的IP、端口、状态、以及其对应的redis集群名称到dashboard。
在步骤S106中,获取proxy代理服务器的机房属性时,通过机房与IP网段对应的接口查询proxy代理服务器的机房属性。这样,dashboard可以为redis服务器打上机房标签。机房与IP网段对应的接口可以为存储机房与IP网段对应的数据库的接口,但并不局限于此。采用该方案相对于人工查询proxy代理服务器的机房属性,自动化程度较高,效率较高。
这里,获取的proxy数据包括proxy代理服务器的IP、端口、状态以及对应的redis集群名称。
在步骤S108中,dashboard把proxy代理服务器的IP、端口及机房属性等信息存入配置中心。这样,dashboard可以方便查询proxy数据及proxy代理服务器的机房属性。
在步骤S110之前,需要先将proxy代理服务器的机房属性与redis服务器的机房属性进行匹配,得到匹配结果;根据匹配结果确定与redis服务器具有相同机房属性的proxy代理服务器。该方案通过查询proxy代理服务器的机房属性与redis服务器的机房属性,并对其进行匹配,再根据匹配结果为redis服务器确定具有相同机房属性的proxy代理服务器,完成了proxy代理服务器与redis服务器机房匹配过程,具有较高的效率。
在步骤S110中,dashboard查询配置中心里和proxy代理服务器具有相同机房属性的redis服务器,然后告知给proxy代理服务器,proxy代理服务器把redis服务器对应的redis集群数据更新到配置文件中。
之后,业务机访问指定域名,通过智能dns解析技术,使得不同机房的业务机访问的不同的机房proxy代理服务器地址,进而根据proxy代理服务器的配置文件实现对相应redis集群的访问。
在步骤S110之后,本公开示例性实施例提供的访问redis集群的方法还包括:将查询配置中心里与proxy代理服务器同机房的redis从服务器得到的查询数据发送给proxy代理服务器,使proxy代理服务器根据查询数据更新配置文件。这里,服务器实时获取redis集群的最新状态,并在redis集群发生变换时将最新状态的redis集群数据存储到配置中心,并通知proxy代理服务器使得proxy代理服务器根据redis集群的变化情况更新配置文件。该方案将查询配置中心里与proxy代理服务器同机房的redis从服务器得到的查询数据发送给proxy代理服务器,实现了在proxy代理服务器中及时更新redis从服务器数据,整个过程不需要人工干预,自动化程度较高,效率较高。
具体地,在该方案中,首先定期从配置中心获取redis集群的redis主服务器地址,再根据redis主服务器地址扫描redis集群。在确定redis集群中的redis从服务器增加、减少或者变更后,将更新后的redis集群数据存储到配置中心,并将增加、减少或者变更的redis从服务器的增加、减少或者变更信息发送给与redis从服务器具有相同机房属性的proxy代理服务器使proxy代理服务器更新增加、减少或者变更信息到配置文件。之后,接收到增加、减少或变更信息的proxy代理服务器把与增加、减少或者变更的redis从服务器对应的redis集群数据更新到配置文件中。该方案通过定期从配置中心获取redis集群中的redis从服务器的变化情况,实现了dashboard定期查询redis集群数据并在redis数据变化时及时通知proxy代理服务器,整个过程不需要人工干预,自动化程度较高,效率较高。
本发明实施例所提供的redis集群的访问方法中,将redis服务器的机房属性和proxy代理服务器的机房属性存储于配置中心,通过查询配置中心数据为redis服务器查询具有相同机房属性的proxy代理服务器以实现对redis集群访问,实现了访问redis集群,减少了人工操作,提高了运维效率。
以下介绍本发明的实施例提供的中间件,应用于redis集群访问系统,可以用于执行本发明上述的redis集群访问方法。
根据本公开的示例性实施方式,具体地,参考图5,中间件500包括:第一数据获取单元502,用于获取redis集群数据和redis集群中redis服务器的机房属性;第一存储单元504,用于将redis集群数据和redis服务器的机房属性存储到配置中心;第二数据获取单元506,用于获取proxy数据和proxy代理服务器的机房属性;第二存储单元508,用于将proxy数据及proxy代理服务器的机房属性存储到配置中心;查询单元510,用于在接收到业务机发送访问请求后,根据访问请求中的redis服务器的地址查询配置中心,得到与redis服务器具有相同机房属性的proxy代理服务器。
在本公开的示例性实施例中,将redis集群数据及redis服务器的机房属性存放在配置中心后,通过中间件dashboard实时查询与proxy代理服务器具有相同机房属性的redis服务器并告知给proxy代理服务器,使得proxy代理服务器可以实时自动更新配置文件以访问同机房的redis服务器。其中,dashboard具有向配置中心注册和查询信息,扫描redis集群以及将查询到的信息通知proxy代理服务器的功能。采用该方案,可以不必手工配置proxy代理服务器的配置文件,提高了运维效率。
这里,redis集群数据包括redis集群名称、redis主服务器地址、redis从服务器地址,以及redis从服务器在redis集群中的位置。
其中,第一数据获取单元502包括:主服务器数据获取子单元,用于获取redis集群名称和redis主服务器地址;从服务器数据获取子单元,用于根据redis主服务器地址扫描redis集群,获取各个redis从服务器的地址、端口以及redis从服务器在集群中所处的位置。
采用该方案时,dashboard可以根据redis集群名称和redis主服务器地址扫描redis集群,以实时获取redis集群状态通知proxy代理服务器,不需要人工操作,效率较高。
具体地,第一数据获取单元502还用于通过机房与IP网段对应的接口查询redis服务器的机房属性。房与IP网段对应的接口可以为存储机房与IP网段对应的数据库的接口,但并不局限于此。采用该方案相对于人工查询redis服务器的机房属性,自动化程度较高,效率较高。
第一存储单元504将redis集群数据以及redis服务器的机房属性存储到配置中心,这样,查询单元510可以方便查询redis集群数据及redis服务器的机房属性。
第二数据获取单元506获取的proxy数据包括proxy代理服务器的地址、端口、状态以及对应的redis集群名称。
第二数据获取单元506通过机房与IP网段对应的接口查询proxy代理服务器的机房属性。机房与IP网段对应的接口可以为存储机房与IP网段对应的数据库的接口,但并不局限于此。采用该方案相对于人工查询proxy代理服务器的机房属性,自动化程度较高,效率较高。
第二存储单元508把proxy代理服务器的IP、端口及机房属性等信息存入配置中心。这样,查询单元510可以方便查询proxy数据及proxy代理服务器的机房属性。
查询单元510包括:匹配子单元,用于将proxy代理服务器的机房属性与redis服务器的机房属性进行匹配,得到匹配结果;查询子单元,用于根据匹配结果确定与redis服务器具有相同机房属性的proxy代理服务器。
该方案完成了proxy代理服务器与redis服务器机房匹配过程,具有较高的效率。
根据本公开的示例性实施例,中间件还包括发送单元,用于将查询配置中心里与proxy代理服务器同机房的redis从服务器得到的查询数据发送给proxy代理服务器,使proxy代理服务器根据查询数据更新配置文件。
根据本公开的示例性实施例,参考图6,相比较中间件500,中间件600不仅包括第一数据获取单元502,第一存储单元504,第二数据获取单元506,第二存储单元508,查询单元510,还包括定期获取单元602。
其中,定期获取单元602用于定期从配置中心获取redis集群的redis主服务器地址,以及用于根据redis主服务器地址扫描redis集群。
之后,第一存储单元502还用于在确定redis集群中的redis从服务器增加、减少或者变更后,将更新后的redis集群数据存储到配置中心。查询单元510还用于将增加、减少或者变更的redis从服务器的增加、减少或者变更信息发送给与redis从服务器具有相同机房属性的proxy代理服务器,使proxy代理服务器更新增加、减少或者变更信息到配置文件。
定期获取单元602与第一存储单元502以及查询单元510结合,实现了dashboard定期查询redis集群数据并在redis数据变化时及时通知proxy代理服务器,整个过程不需要人工干预,自动化程度较高,效率较高。
中间件600的其它功能与中间件500相同,在此不再重复叙述。
由于本发明的示例实施例的中间件的各个功能模块与+上述redis集群访问方法的示例实施例的步骤对应,因此对于本发明装置实施例中未披露的细节,请参照本发明上述的redis集群访问方法的实施例。
本发明实施例还提供一种redis集群访问系统,包括上述技术方案中的中间件,还包括配置中心,其中,配置中心用于存储中间件获取的redis集群数据和redis集群中redis服务器的机房属性,以及存储中间件获取的proxy数据及proxy代理服务器的机房属性。
通过向配置中心存储以上数据和从配置中心读取以上数据,并将读取的数据发送给proxy代理服务器,可以不必手工配置proxy代理服务器的配置文件,提高了运维效率。
本发明实施例所提供的中间件和redis集群访问系统中,将redis服务器的机房属性和proxy代理服务器的机房属性存储于配置中心,通过查询配置中心为redis服务器查询具有相同机房属性的proxy代理服务器以实现对redis集群访问,实现了访问redis集群,减少了人工操作,提高了运维效率。
下面参考图7,其示出了适于用来实现本发明实施例的电子设备的计算机系统700的结构示意图。图7示出的电子设备的计算机系统700仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统操作所需的各种程序和数据。CPU701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的访问redis集群的方法。
例如,所述的电子设备可以实现如图1中所示的:步骤S102,获取redis集群数据和redis服务器的机房属性;步骤S104,将redis集群数据和redis集群中redis服务器的机房属性存储到配置中心;步骤S106,获取proxy数据和proxy代理服务器的机房属性;步骤S108,将proxy数据及proxy代理服务器的机房属性存储到配置中心;步骤S110,在接收到业务机发送访问请求后,根据所述访问请求中的redis服务器的地址查询所述配置中心,得到与redis服务器具有相同机房属性的proxy代理服务器。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (17)
1.一种远程字典服务器redis集群访问方法,其特征在于,应用于中间件,所述中间件与redis集群、proxy代理服务器和配置中心分别连接,所述方法包括:
获取redis集群数据和redis集群中redis服务器的机房属性;
将所述redis集群数据和所述redis服务器的机房属性存储到所述配置中心;
获取proxy数据和proxy代理服务器的机房属性;
将所述proxy数据及所述proxy代理服务器的机房属性存储到所述配置中心;
在接收到业务机发送访问请求后,根据所述访问请求中的redis服务器的地址查询所述配置中心,得到与redis服务器具有相同机房属性的proxy代理服务器。
2.根据权利要求1所述的方法,其特征在于,
所述redis服务器包括redis主服务器和redis从服务器;所述redis集群数据包括redis集群名称、redis主服务器地址、redis从服务器地址和端口以及redis从服务器在所述redis集群中的位置;
所述proxy数据包括proxy代理服务器的地址、端口、状态以及对应的redis集群名称。
3.根据权利要求2所述的方法,其特征在于,所述得到与redis服务器具有相同机房属性的proxy代理服务器之后,所述方法还包括:
定期从所述配置中心获取redis集群的redis主服务器地址;
根据所述redis主服务器地址扫描所述redis集群;
在确定所述redis集群中的redis从服务器增加、减少或者变更后,将更新后的redis集群数据存储到所述配置中心;
将增加、减少或者变更的redis从服务器的增加、减少或者变更信息发送给与所述redis从服务器具有相同机房属性的proxy代理服务器,使所述proxy代理服务器更新所述增加、减少或者变更信息到配置文件。
4.根据权利要求3所述的方法,其特征在于,所述获取redis集群数据,包括:
获取redis集群名称和redis主服务器地址;
根据所述redis主服务器地址扫描所述redis集群,获取各个redis从服务器的地址、端口以及所述redis从服务器在集群中所处的位置。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述得到与redis服务器具有相同机房属性的proxy代理服务器之前,所述方法还包括:
将proxy代理服务器的机房属性与所述redis服务器的机房属性进行匹配,得到匹配结果;
根据所述匹配结果确定与redis服务器具有相同机房属性的proxy代理服务器。
6.根据权利要求5所述的方法,其特征在于,所述获取redis服务器的机房属性,包括:
通过机房与IP网段对应的接口查询所述redis服务器的机房属性;和/或,
所述获取proxy代理服务器的机房属性,包括:通过机房与IP网段对应的接口查询所述proxy代理服务器的机房属性。
7.根据权利要求6所述的方法,其特征在于,将所述proxy数据及所述proxy代理服务器的机房属性存储到所述配置中心之后,所述方法还包括:
将查询所述配置中心里与proxy代理服务器同机房的redis从服务器得到的查询数据发送给所述proxy代理服务器,使所述proxy代理服务器根据所述查询数据更新配置文件。
8.一种中间件,应用于redis集群访问系统,其特征在于,包括:
第一数据获取单元,用于获取redis集群数据和redis集群中redis服务器的机房属性;
第一存储单元,用于将所述redis集群数据和所述redis服务器的机房属性存储到配置中心;
第二数据获取单元,用于获取proxy数据和proxy代理服务器的机房属性;
第二存储单元,用于将所述proxy数据及所述proxy代理服务器的机房属性存储到所述配置中心;
查询单元,用于在接收到业务机发送访问请求后,根据所述访问请求中的redis服务器的地址查询所述配置中心,得到与redis服务器具有相同机房属性的proxy代理服务器。
9.根据权利要求8所述的中间件,其特征在于,所述redis集群数据包括redis集群名称、redis主服务器地址、redis从服务器地址,以及redis从服务器在所述redis集群中的位置,所述proxy数据包括proxy代理服务器的地址、端口、状态以及对应的redis集群名称。
10.根据权利要求9所述的中间件,其特征在于,所述中间件还包括定期获取单元,用于定期从所述配置中心获取redis集群的redis主服务器地址,以及根据所述redis主服务器地址扫描所述redis集群;
所述第一存储单元还用于在确定所述redis集群中的redis从服务器增加、减少或者变更后,将更新后的redis集群数据存储到所述配置中心;
所述查询单元还用于将增加、减少或者变更的redis从服务器的增加、减少或者变更信息发送给与所述redis从服务器具有相同机房属性的proxy代理服务器,使所述proxy代理服务器更新所述增加、减少或者变更信息到配置文件。
11.根据权利要求10所述的中间件,其特征在于,所述第一数据获取单元,包括:
主服务器数据获取子单元,用于获取redis集群名称和redis主服务器地址;
从服务器数据获取子单元,用于根据redis主服务器地址扫描所述redis集群,获取各个redis从服务器的地址、端口以及所述redis从服务器在集群中所处的位置。
12.根据权利要求8至11任一项所述的中间件,其特征在于,所述查询单元,包括:
匹配子单元,用于将proxy代理服务器的机房属性与所述redis服务器的机房属性进行匹配,得到匹配结果;
查询子单元,用于根据所述匹配结果确定与redis服务器具有相同机房属性的proxy代理服务器。
13.根据权利要求12所述的中间件,其特征在于,所述第一数据获取单元还用于:通过机房与IP网段对应的接口查询所述redis服务器的机房属性;和/或,
所述第二数据获取单元还用于:通过机房与IP网段对应的接口查询所述proxy代理服务器的机房属性。
14.根据权利要求13所述的中间件,其特征在于,所述中间件还包括发送单元,用于:
将查询所述配置中心里与proxy代理服务器同机房的redis从服务器得到的查询数据发送给所述proxy代理服务器,使所述proxy代理服务器根据所述查询数据更新配置文件。
15.一种redis集群访问系统,其特征在于,包括如权利要求8至14中任一项所述的中间件,还包括配置中心,其中,所述配置中心用于存储所述中间件获取的redis集群数据和redis集群中redis服务器的机房属性,以及存储所述中间件获取的proxy数据及proxy代理服务器的机房属性。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的redis集群访问方法。
17.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的redis集群访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910032574.XA CN111435942B (zh) | 2019-01-14 | 2019-01-14 | redis集群访问方法、系统、中间件、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910032574.XA CN111435942B (zh) | 2019-01-14 | 2019-01-14 | redis集群访问方法、系统、中间件、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111435942A true CN111435942A (zh) | 2020-07-21 |
CN111435942B CN111435942B (zh) | 2023-04-18 |
Family
ID=71579948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910032574.XA Active CN111435942B (zh) | 2019-01-14 | 2019-01-14 | redis集群访问方法、系统、中间件、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111435942B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118652A (zh) * | 2022-07-18 | 2022-09-27 | 中信百信银行股份有限公司 | 路由分配方法、装置和设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159985A (zh) * | 2015-08-31 | 2015-12-16 | 努比亚技术有限公司 | 基于redis集群的数据查询装置及方法 |
CN105933407A (zh) * | 2016-04-20 | 2016-09-07 | 中国银联股份有限公司 | 一种实现Redis集群高可用的方法及系统 |
US20160366220A1 (en) * | 2015-06-15 | 2016-12-15 | Yossi Gottlieb | Methods, systems, and media for providing distributed database access during a network split |
CN107220375A (zh) * | 2017-06-20 | 2017-09-29 | 北京小度信息科技有限公司 | 数据读写方法和服务器 |
CN107395559A (zh) * | 2017-05-27 | 2017-11-24 | 北京五八信息技术有限公司 | 基于redis的数据处理方法及设备 |
US20180034904A1 (en) * | 2016-07-27 | 2018-02-01 | Salesforce.Com, Inc. | Dynamic allocation of stateful nodes for healing and load balancing |
CN107734004A (zh) * | 2017-09-26 | 2018-02-23 | 河海大学 | 一种基于Nginx、Redis的高并发负载均衡系统 |
CN107888666A (zh) * | 2017-10-27 | 2018-04-06 | 北京奇艺世纪科技有限公司 | 一种跨地域数据存储系统以及数据同步方法和装置 |
CN108206779A (zh) * | 2016-12-16 | 2018-06-26 | 北京金山云网络技术有限公司 | 一种集群访问系统、方法及装置 |
WO2019006454A1 (en) * | 2017-06-30 | 2019-01-03 | Yiftach Shoolman | METHODS, SYSTEMS, AND MEDIA FOR CONTROLLING FILE ADJUSTMENTS ONLY IN ADD |
-
2019
- 2019-01-14 CN CN201910032574.XA patent/CN111435942B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160366220A1 (en) * | 2015-06-15 | 2016-12-15 | Yossi Gottlieb | Methods, systems, and media for providing distributed database access during a network split |
CN105159985A (zh) * | 2015-08-31 | 2015-12-16 | 努比亚技术有限公司 | 基于redis集群的数据查询装置及方法 |
CN105933407A (zh) * | 2016-04-20 | 2016-09-07 | 中国银联股份有限公司 | 一种实现Redis集群高可用的方法及系统 |
US20180034904A1 (en) * | 2016-07-27 | 2018-02-01 | Salesforce.Com, Inc. | Dynamic allocation of stateful nodes for healing and load balancing |
CN108206779A (zh) * | 2016-12-16 | 2018-06-26 | 北京金山云网络技术有限公司 | 一种集群访问系统、方法及装置 |
CN107395559A (zh) * | 2017-05-27 | 2017-11-24 | 北京五八信息技术有限公司 | 基于redis的数据处理方法及设备 |
CN107220375A (zh) * | 2017-06-20 | 2017-09-29 | 北京小度信息科技有限公司 | 数据读写方法和服务器 |
WO2019006454A1 (en) * | 2017-06-30 | 2019-01-03 | Yiftach Shoolman | METHODS, SYSTEMS, AND MEDIA FOR CONTROLLING FILE ADJUSTMENTS ONLY IN ADD |
CN107734004A (zh) * | 2017-09-26 | 2018-02-23 | 河海大学 | 一种基于Nginx、Redis的高并发负载均衡系统 |
CN107888666A (zh) * | 2017-10-27 | 2018-04-06 | 北京奇艺世纪科技有限公司 | 一种跨地域数据存储系统以及数据同步方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118652A (zh) * | 2022-07-18 | 2022-09-27 | 中信百信银行股份有限公司 | 路由分配方法、装置和设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111435942B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943594B (zh) | 数据获取方法和装置 | |
CN109905431B (zh) | 消息处理方法及系统、存储介质、电子设备 | |
CN112445626B (zh) | 一种基于消息中间件的数据处理方法和装置 | |
CN110837409B (zh) | 一种定时执行任务的方法和系统 | |
CN111797091A (zh) | 数据库中数据查询的方法、装置、电子设备和存储介质 | |
CN110083627B (zh) | 数据处理方法、系统、计算机设备和存储介质 | |
CN111038906B (zh) | 一种订单分拣方法和装置 | |
CN103607424A (zh) | 一种服务器连接方法及服务器系统 | |
CN112105009A (zh) | 设备发现和蓝牙广播方法、装置、电子设备及存储介质 | |
CN109582329A (zh) | 数据管理及订阅方法、装置、系统、电子设备及存储介质 | |
CN104881454A (zh) | 参数的更新方法及系统 | |
CN111078238A (zh) | 容器环境下应用配置集中处理方法及装置 | |
CN111435942B (zh) | redis集群访问方法、系统、中间件、介质及设备 | |
CN112084254A (zh) | 一种数据同步方法和系统 | |
CN111343220A (zh) | 转发器、分布式文件传输方法、系统、介质及电子设备 | |
CN115277707B (zh) | 业务处理方法、装置、电子设备和存储介质 | |
CN110798358A (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN108833147B (zh) | 一种配置信息的更新方法和装置 | |
CN111078789A (zh) | 数据共享方法及装置、存储介质、电子设备 | |
CN113127443B (zh) | 一种更新缓存数据的方法和装置 | |
US11474846B2 (en) | Controller for bridging database architectures | |
CN109547552B (zh) | Api请求处理方法、装置、存储介质及电子设备 | |
CN113542319A (zh) | 用于Dubbo框架中的服务提供实体变更通知方法、装置及系统 | |
CN112988857A (zh) | 一种业务数据的处理方法和装置 | |
CN112559001A (zh) | 更新应用的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |