一种业务系统通过客户端访问读多写少系统的方法和装置制造方法及图纸

技术编号:19391057 阅读:42 留言:0更新日期:2018-11-10 02:50
本说明书实施例提供一种业务系统间的数据读取方法和装置。在一个实施例中,第一业务系统和读多写少的第二业务系统通过网络相连;第二业务系统包括管理器、数据库和至少一个缓存库,缓存库是数据库的分布式缓存,管理器提供对数据库以及分布式缓存的控制;第一业务系统安装有管理器的客户端程序;所述方法由客户端程序执行;所述方法包括:获取读取请求,读取请求用于读取第二业务系统中的数据;根据读取请求,确定缓存库地址,所述缓存库地址对应于至少一个缓存库中的缓存库;根据缓存库地址,与缓存库建立连接;通过该连接向缓存库发送读取请求,读取数据。本说明书实施例可大幅降低网络的耗时,增加系统吞吐量。

A method and device for a business system to read and write fewer systems through client access

The manual embodiment provides a data reading method and device between business systems. In one embodiment, the first service system and the second service system with less read and write are connected through a network; the second service system includes a manager, a database and at least one cache library, which is a distributed cache of the database, and the manager provides control over the database and the distributed cache; the first service system installation A client program with a manager; the method is executed by a client program; the method includes acquiring a read request for reading data in a second service system; determining a cache address according to the read request, which corresponds to the cache in at least one cache; and according to the cache The address of the library to establish a connection with the cache; through this connection to send read requests to the cache, read data. The implementation of the specification can greatly reduce the time consumption of the network and increase the throughput of the system.

【技术实现步骤摘要】
一种业务系统通过客户端访问读多写少系统的方法和装置
本说明书涉及计算机
,尤其涉及从读多写少系统读取数据的方法和装置。
技术介绍
顾名思义,读多写少系统是读多于写的系统。作为服务提供方,系统同时提供读和写的服务,但是系统的压力主要来自于服务调用方的读取操作。为此,系统在数据库层面建立多个读库和一个主库,发生读取操作时系统读取读库,当发生写操作时系统操作主库并同步到读库中。对于来自服务调用方的大量读取需求,系统建立分布式缓存。当读取业务发生时,优先读取分布式缓存中的数据,如果缓存中不存在数据则会读取数据库,并将结果存入缓存中,操作数据时会先更新数据库然后更新到分布式缓存中。然而,随着读取的业务量加大以及对查询性能提出的要求,网络耗时成了制约系统更进一步的瓶颈。因此,希望能有改进的方案,能够有效地减少服务调用方与服务提供方之间的网络耗时。
技术实现思路
本说明书一个或多个实施例描述了一种方法和装置,能够减少建立连接、数据传输的耗时,增加系统吞吐量。根据第一方面,提供了一种读多写少系统的数据读取方法。第一业务系统和第二业务系统通过网络相连。所述第二业务系统是读多写少的系统,所述第二业务系统包括管理器、数据库和至少一个缓存库,所述至少一个缓存库是数据库的分布式缓存,管理器提供对数据库以及至少一个分布式缓存的控制。第一业务系统安装有第二业务系统的管理器的客户端程序;所述方法由所述客户端程序执行。所述方法包括:获取读取请求,所述读取请求用于读取第二业务系统中的数据;在第一模式下,根据读取请求,确定缓存库地址,所述缓存库地址对应于至少一个缓存库中的第一缓存库;根据缓存库地址,与第一缓存库建立第一连接;通过该第一连接向第一缓存库发送读取请求,读取第一数据。在一种可能的方案中,所述方法包括在第二模式下,和管理器建立第二连接,并且通过该第二连接向管理器发送读取请求,以便通过第二连接从至少一个分布式缓存或数据库读取第二数据。在进一步可能的方案中,所述方法包括比较第一数据和第二数据,根据比较结果确定第一模式的可用性。在一种可能的方案中,所述方法包括客户端程序包括模式开关,所述方法包括根据模式开关,选择第一模式和第二模式的一个模式读取数据。在另一个进一步可能的方案中,所述方法包括切换所述模式开关,从而在第一模式和第二模式之间进行切换。在一种可能的方案中,所述根据读取请求,确定缓存库地址包括根据读取请求,确定键;根据键和键值对,确定缓存库地址。在一种可能的方案中,所述方法包括在第一缓存库无法命中数据的情况下,向管理器发送读取数据库的请求。根据第二方面,提供一种第一业务系统的访问第二业务系统的数据读取装置。第一业务系统和第二业务系统通过网络相连。所述第二业务系统是读多写少的系统,所述第二业务系统包括管理器、数据库和至少一个缓存库,所述至少一个缓存库是数据库的分布式缓存,管理器提供对数据库以及至少一个分布式缓存的控制。所述数据读取装置包括:获取单元,配置为获取读取请求,所述读取请求用于读取第二业务系统中的数据;确定单元,配置为在第一模式下,根据读取请求,确定缓存库地址,所述缓存库地址对应于至少一个缓存库中的第一缓存库;第一连接单元,配置为根据缓存库地址,与至少一个缓存库中的第一缓存库建立第一连接;第一读取单元,配置为通过该第一连接向第一缓存库发送读取请求,读取第一数据。根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。根据第四方面,提供了一种服务器,服务器包括存储设备,网络接口和处理器,所述处理器可通信地耦合到所述存储设备和网络接口,存储设备存储有管理器的客户端程序,管理器提供对数据库以及至少一个分布式缓存的控制,至少一个缓存库是数据库的分布式缓存,所述处理器可用于执行客户端程序,进而实现第一方面的方法。通过本说明书实施例提供的方法和装置,可大幅降低网络的耗时,增加系统吞吐量,提高应用的访问速度,并降低数据库的负载。附图说明本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本说明书披露的业务系统访问读多写少系统的场景示意图;图2示出根据一个本说明书实施例的通过客户端接入分布式缓存的示意图;图3示意了在第一模式下缓存库无法命中数据的流程示意图;图4示出根据一个实施例的通过客户端接入分布式缓存的方法流程示意图;图5示意了根据实施例的可用于实现上述各种技术的服务器的详细结构图;图6为本说明书实施例提供的一种装置的结构示意图;图7是缓存库客户端嵌入管理器客户端的示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。图1为本说明书披露的业务系统访问读多写少系统的场景示意图。如图1所示,有第一业务系统和第二业务系统,彼此可通过网络相连。第一业务系统例如以服务器A1、A2、A3为代表。在一个例子中,第一业务系统是服务器集群,集群中的每个服务器具有相同的功能,负载均衡服务器根据各服务器的负载情况,将用户的请求动态分配给相应的服务器处理。第二业务系统例如包括管理器B,数据库B-M0和至少一个缓存库B-H1、B-H2、B-H3和B-H4,构成一个读多写少系统。其中,缓存库B-H1、B-H2、B-H3和B-H4是数据库B-M0的分布式缓存。数据库B-M0可部署在管理器所在的服务器中,也可单独部署;数据库B-M0存储有许多数据,它可以通过发布服务来提供数据的查询能力,当然也可以允许将新数据写入;管理器B实现对数据库B-M0、分布式缓存B-H1、B-H2、B-H3和B-H4的控制。根据需要,缓存库B-H1、B-H2、B-H3和B-H4可以存储有数据库B-M0的数据中的至少一部分,在一个例子中,存储着数据库B-M0的那些不易变的数据。当然,数据库B-M0和各缓存库还可以存储文件,对象,图片,视频等等,为简单起见,下文中以数据统称。管理器B可以通过数据分片,把数据库B-M0的数据分散到多个缓存库B-H1、B-H2、B-H3和B-H4中。数据分片可以采用以下几种规则:区间分片、哈希(hash)分片、时隙(slot)分片。当然,其它的有利于数据读取和写入的规则也是可行的。对于哈希分片,哈希算法可以采用静态哈希和一致性哈希。例如,以数据D,缓存库的总个数N为基础,通过一致性哈希算法计算出数据D对应的哈希值,根据哈希值就可以找到对应的缓存库。在一种可能的场景下,第一业务系统的业务和第二业务系统的业务之间有关联或者有依赖关系,因此需要访问第二业务系统的数据。比如,第一业务系统负责交易,第二业务系统负责管理会员信息,第一业务系统通过查询第二业务系统中的会员信息来确认交易的进行。服务器A1-A3、管理器B、数据库B-M0和多个缓存库B-H1、B-H2、B-H3和B-H4通常分设在不同的服务器或通信设备上,但是也可以设置在同一服务器或同一通信设备上;当分设在不同的服务器或通信设备上时,服务器A1-A3、管理器B、数据库B-M0和缓存库B-H1、B-H2、B本文档来自技高网...

【技术保护点】
1.一种第一业务系统访问第二业务系统的数据读取方法,第一业务系统和第二业务系统通过网络相连;所述第二业务系统是读多写少的系统,所述第二业务系统包括管理器、数据库和至少一个缓存库,所述至少一个缓存库是数据库的分布式缓存,管理器提供对数据库以及至少一个分布式缓存的控制;第一业务系统安装有第二业务系统的管理器的客户端程序;所述方法由所述客户端程序执行;所述方法包括:获取读取请求,所述读取请求用于读取第二业务系统中的数据;在第一模式下,根据读取请求,确定缓存库地址,所述缓存库地址对应于至少一个缓存库中的第一缓存库;根据缓存库地址,与第一缓存库建立第一连接;通过该第一连接向第一缓存库发送读取请求,读取第一数据。

【技术特征摘要】
1.一种第一业务系统访问第二业务系统的数据读取方法,第一业务系统和第二业务系统通过网络相连;所述第二业务系统是读多写少的系统,所述第二业务系统包括管理器、数据库和至少一个缓存库,所述至少一个缓存库是数据库的分布式缓存,管理器提供对数据库以及至少一个分布式缓存的控制;第一业务系统安装有第二业务系统的管理器的客户端程序;所述方法由所述客户端程序执行;所述方法包括:获取读取请求,所述读取请求用于读取第二业务系统中的数据;在第一模式下,根据读取请求,确定缓存库地址,所述缓存库地址对应于至少一个缓存库中的第一缓存库;根据缓存库地址,与第一缓存库建立第一连接;通过该第一连接向第一缓存库发送读取请求,读取第一数据。2.根据权利要求1所述的方法,所述方法还包括在第二模式下,和管理器建立第二连接,并且通过该第二连接向管理器发送读取请求,以便通过第二连接从至少一个分布式缓存或数据库读取第二数据。3.根据权利要求2所述的方法,所述方法还包括比较第一数据和第二数据,根据比较结果确定第一模式的可用性。4.根据权利要求2所述的方法,其中客户端程序包括模式开关,所述方法包括根据模式开关,选择第一模式和第二模式的一个模式读取数据。5.根据权利要求4所述的方法,其中所述方法包括切换所述模式开关,从而在第一模式和第二模式之间进行切换。6.根据权利要求1所述的方法,其中所述根据读取请求,确定缓存库地址包括根据读取请求,确定键;根据键和键值对,确定缓存库地址。7.根据权利要求1所述的方法,所述方法还包括在第一缓存库无法命中数据的情况下,向管理器发送读取数据库的请求。8.一种第一业务系统访问第二业务系统的数据读取装置,第一业务系统和第二业务系统通过网络相连;所述第二业务系统是读多写少的系统,所述第二业务系统包括管理器、数据库和至少一个缓存库,所述至少一个缓存库是数据库的分布式缓存,管理器提供对数据库以及至少一个分布式缓存的控制;所述数据读取装置包括...

【专利技术属性】
技术研发人员:赵国钦李效锋
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1