CN111400350B - 配置数据读取方法、***、电子设备和存储介质 - Google Patents
配置数据读取方法、***、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111400350B CN111400350B CN202010177947.5A CN202010177947A CN111400350B CN 111400350 B CN111400350 B CN 111400350B CN 202010177947 A CN202010177947 A CN 202010177947A CN 111400350 B CN111400350 B CN 111400350B
- Authority
- CN
- China
- Prior art keywords
- configuration data
- reading
- cache
- server
- configuration
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,提供一种配置数据读取方法、***、电子设备和存储介质。配置数据读取方法包括:接口服务器响应于配置数据读取请求,自本地缓存中读取配置数据;若自本地缓存中读取到与配置数据读取请求匹配的配置数据,则返回自本地缓存中读取到的配置数据;若本地缓存中没有与配置数据读取请求匹配的配置数据,则从分布式缓存中读取配置数据,包括:通过配置于分布式缓存中的快照服务查找可读缓存服务器;自可读缓存服务器中读取与配置数据读取请求匹配的配置数据;以及返回自可读缓存服务器中读取到的配置数据。本发明可以实现对可变的关系型配置数据的高效读取,满足实时性、一致性、高并发、高性能和高可用的读取需求。
Description
背景技术
互联网行业有很多对配置数据的高效读取的业务需求。例如,A/B实验的读取方需要读取A/B实验的配置数据,以便进行各个版本的分流;应用程序(APP)需要读取不同用户偏好的配置数据,以便进行个性化的主界面展示。
这些业务需求通常采用SOA接口和Redis数据库实现,读取方调用SOA接口,SOA接口直接读取Redis数据库中的配置数据返回给读取方。这种设计可以基本保证配置数据的实时读取,但普遍存在两点不足。
一是不能支持关系型配置数据的高效读取,需要把Redis数据库中独立的配置数据读取出来,然后在SOA接口中进行关联。这样会影响SOA接口的效率,并且当业务上有变化时,SOA接口需要重新编码这些关联关系,发布到生产才能生效;
二是Redis数据库在数据增长的情况下可以扩容数据存储节点,但标示数据存储节点位置的Hash要重新进行计算。这样导致在扩容的情况下访问不到一些配置数据,而且在配置数据增量大的情况下,写入Redis数据库需要比较长的时间,会导致部署SOA接口的各个节点在同一时间读取到不同的配置数据,产生数据不一致。
需要说明的是,上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本发明提供一种配置数据读取方法、***、电子设备和存储介质,可以实现对可变的关系型配置数据的高效读取。
本发明的一个方面提供一种配置数据读取方法,包括如下步骤:接口服务器响应于配置数据读取请求,自本地缓存中读取配置数据;若自所述本地缓存中读取到与所述配置数据读取请求匹配的配置数据,则返回自所述本地缓存中读取到的配置数据;若所述本地缓存中没有与所述配置数据读取请求匹配的配置数据,则所述接口服务器从分布式缓存中读取配置数据,包括:通过配置于所述分布式缓存中的快照服务查找可读缓存服务器;自所述可读缓存服务器中读取与所述配置数据读取请求匹配的配置数据;以及,返回自所述可读缓存服务器中读取到的配置数据。
在一些实施例中,所述配置数据读取方法还包括定期读取全量配置数据的步骤,所述定期读取全量配置数据的步骤包括:所述快照服务周期性地关联数据库集群中的所有配置数据,并将关联后的配置数据写入所述数据库集群的配置宽表中;以及,所述快照服务自所述配置宽表中读取全量配置数据,写入所述分布式缓存。
在一些实施例中,所述写入所述分布式缓存的步骤包括:查找所述分布式缓存中的可写缓存服务器;清空所述可写缓存服务器,并将读取的全量配置数据写入所述可写缓存服务器;以及,写入完成后将所述可写缓存服务器标记为更新后的可读缓存服务器,并将所述可读缓存服务器标记为更新后的可写缓存服务器。
在一些实施例中,所述定期读取全量配置数据的步骤还包括:所述接口服务器周期性地自所述可读缓存服务器中读取对应所述接口服务器的配置数据,更新至所述本地缓存中。
在一些实施例中,所述配置数据读取方法还包括实时读取增量配置数据的步骤,所述实时读取增量配置数据的步骤包括:数据库集群接收到新增配置数据时,发起携带所述新增配置数据的配置变更通知;所述分布式缓存根据所述配置变更通知,通过所述快照服务将所述新增配置数据关联写入所述数据库集群的配置宽表中;以及,所述快照服务自所述配置宽表中读取增量配置数据,写入所述分布式缓存。
在一些实施例中,所述实时读取增量配置数据的步骤还包括:所述分布式缓存接收到所述增量配置数据时,发起携带所述增量配置数据的配置变更通知;以及,所述接口服务器根据所述配置变更通知,自所述分布式缓存中读取所述增量配置数据,写入所述本地缓存。
在一些实施例中,所述实时读取增量配置数据的步骤中,采用长轮询的方式获取增量配置数据。
在一些实施例中,所述分布式缓存中包括多个分布式的缓存服务器,所述快照服务配置于一缓存服务器上,当配置所述快照服务的缓存服务器故障时,所述快照服务自动在所述分布式缓存的另一缓存服务器上实时启动。
在一些实施例中,所述接口服务器配置于接口服务集群中,所述接口服务集群中包括多个分布式的接口服务器,每个接口服务器响应与其对应的配置数据读取请求。
本发明的另一个方面提供一种配置数据读取***,包括接口服务器和分布式缓存,所述接口服务器包括:读取请求响应模块,用于响应配置数据读取请求,自本地缓存中读取配置数据;本地缓存读取模块,用于当自所述本地缓存中读取到与所述配置数据读取请求匹配的配置数据,则返回自所述本地缓存中读取到的配置数据;以及分布式缓存读取模块,用于当所述本地缓存中没有与所述配置数据读取请求匹配的配置数据,从分布式缓存中读取配置数据,包括:通过配置于所述分布式缓存中的快照服务查找可读缓存服务器;自所述可读缓存服务器中读取与所述配置数据读取请求匹配的配置数据;以及,返回自所述可读缓存服务器中读取到的配置数据。
本发明的再一个方面提供一种电子设备,包括:一处理器;一存储器,所述存储器中存储有所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行上述任意实施例所述的配置数据读取方法的步骤。
本发明的又一个方面提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述任意实施例所述的配置数据读取方法的步骤。
本发明与现有技术相比的有益效果至少包括:
接口服务器在接收到配置数据读取请求时,先从本地缓存中查找配置数据,以提高响应速度,实现对配置数据的高效读取;
快照服务确保接口服务器访问分布式缓存时自可读缓存服务器中读取配置数据,保证配置数据的完整读取,并保证配置数据的一致性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明实施例中配置数据读取方法的实施架构示意图;
图2示出本发明实施例中配置数据读取方法的步骤示意图;
图3示出本发明实施例中定期读取全量配置数据的步骤示意图;
图4示出本发明实施例中定期读取全量配置数据的实施场景示意图;
图5示出本发明实施例中实时读取增量配置数据的步骤示意图;
图6示出本发明实施例中实时读取增量配置数据的实施场景示意图;
图7示出本发明实施例中配置数据读取***的模块示意图;
图8示出本发明实施例中电子设备的结构示意图;以及
图9示出本发明实施例中计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使本发明全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
图1示出实施例中配置数据读取方法的实施架构,参照图1所示,用于实现配置数据读取方法的实施架构包括提供接口服务的接口服务层11、提供分布式缓存服务的分布式缓存12以及存储配置数据的数据库集群13。接口服务层11中部署有多个接口服务集群110,每个接口服务集群110中包括多个分布式的接口服务器111。本实施例中接口服务器111基于SOA构建,SOA(Service-OrientedArchitecture,面向服务的架构)使用接口进行数据交互,具有敏捷性、一致性、灵活性等优点。接口服务层11的接口服务是分布式的,具有熔断、降级、异地双活、自动缩容扩容等高可用功能。分布式缓存12中部署有多个分布式缓存集群120,每个分布式缓存集群120中包括多个缓存服务器122。本实施例中缓存服务器122是Cache存储器,分布式缓存12的平台层位于接口服务层11的下层,分布式缓存12具有数据一致性、SQL查询、异地双活、自动缩容扩容等高可用功能。数据库集群13部署于分布式缓存12的平台层下层,其中包括多个数据库服务器130,数据库集群13具有灾备等高可用功能。
在一个具体的实施场景中,上述用于实现配置数据读取方法的实施架构可以部署于A/B实验分流器的后台服务上,用于接收A/B实验分流请求,高效读取配置数据。
图2示出实施例中配置数据读取方法的主要步骤,本实施例的配置数据读取方法可以由图1所示的实施架构实现。参照图2所示,本实施例中配置数据读取方法主要包括:在步骤S220中,接口服务器响应于配置数据读取请求,自本地缓存中读取配置数据;在步骤S230中,若自本地缓存中读取到与配置数据读取请求匹配的配置数据,则返回自本地缓存中读取到的配置数据;在步骤S240中,若本地缓存中没有与配置数据读取请求匹配的配置数据,则接口服务器从分布式缓存中读取配置数据,具体包括:步骤S2402,通过配置于分布式缓存中的快照服务查找可读缓存服务器;步骤S2404,自可读缓存服务器中读取与配置数据读取请求匹配的配置数据;以及步骤S2406,返回自可读缓存服务器中读取到的配置数据。
配置数据通常是写入次数少读取次数多的非海量数据,无论配置数据的关系如何变化,数据读取方想要读取的配置数据是固定不变的。例如A/B实验的配置数据,无论实验的分流比、位置和指标等如何变化,A/B实验的数据读取方只需知道A/B实验号以及用户ID分流到哪个版本,即哪个实验组。因此,配置数据的SOA接口可以固定下来,上线后一般不需要再改变,使得每个接口服务器可以响应与其对应的配置数据读取请求。
当接口服务器接收到配置数据读取请求,先从本地缓存(LocalCache)中查找配置数据,以提高响应速度,实现对配置数据的高效读取。本地缓存有一定的存储量限制,可以按照一定的规则存储相对活跃的配置数据,以提高常用配置数据的读取速度。根据接口服务器的内存使用情况,如果配置数据不是很多,则本地缓存中可以存储所有的配置数据。接口服务器的本地缓存可以采用COW(Copy-On-Write,写时复制)机制,以有效应对写少读多的配置数据访问请求。若本地缓存中没有匹配的配置数据,则从分布式缓存中读取,分布式缓存中部署的快照服务确保了接口服务器访问分布式缓存时自可读缓存服务器中读取配置数据,保证配置数据的完整读取,并保证配置数据的一致性。快照服务(SnapshotService)配置于分布式缓存的一台缓存服务器上,当配置快照服务的缓存服务器故障被拉出分布式缓存时,快照服务会自动在另一缓存服务器上实时启动。
配置数据读取请求的发起客户端对配置数据的一致性要求很高,不能出现同一时间不同客户端读到不一样的配置数据的情况,因此通过快照服务对接口服务器和分布式缓存进行一致性设计,以满足配置数据的一致性读取需求。接口服务器以拉的方式定期从下层读取配置数据,配置数据有变更时下层以推的方式通知上层,以便上层实时读取配置数据。
图3示出实施例中定期读取全量配置数据的主要步骤,参照图3所示,配置数据读取方法还包括定期读取全量配置数据的步骤S300,定期读取全量配置数据的过程具体包括:步骤S320,快照服务周期性地关联数据库集群中的所有配置数据,并将关联后的配置数据写入数据库集群的配置宽表中;以及步骤S340,快照服务自配置宽表中读取全量配置数据,写入分布式缓存。其中写入分布式缓存的步骤包括:步骤S3402,查找分布式缓存中的可写缓存服务器;步骤S3404,清空可写缓存服务器,并将读取的全量配置数据写入可写缓存服务器;以及步骤S3406,写入完成后将可写缓存服务器标记为更新后的可读缓存服务器,并将可读缓存服务器标记为更新后的可写缓存服务器。
具体来说,参照图4所示的定期读取全量配置数据的实施场景,是以拉的模式读取配置数据的过程。部署于分布式缓存12的平台层的快照服务121例如每隔5分钟关联所有的配置数据,写入数据库集群13的配置宽表中,配置宽表中存储配置数据以及配置数据的关联关系。然后快照服务121从配置宽表中读取全量配置数据写入分布式缓存12。快照服务121会先把分布式缓存12中的可写缓存服务器122a清空,然后把配置宽表的全量配置数据写入,写入完成后会把当前的可写缓存服务器122a标记成更新后的可读缓存服务器,并把当前的可读缓存服务器122b标记成更新后的可写缓存服务器。这样当下次某台接口服务器111a访问分布式缓存12时,可以从更新后的可读缓存服务器中读取到最新的配置数据。而在可写缓存服务器122a写入的过程中,接口服务器111a访问的是当前的可读缓存服务器122b,不会因写入导致读取的配置数据不一致的情况。快照服务121可以让批量配置数据完成关联、写入的情况下再供接口服务器使用,保证了每个接口服务器同一时间读到一致的配置数据。
进一步的,参照图3所示,定期读取全量配置数据的步骤S300还包括:步骤S360,接口服务器周期性地自可读缓存服务器中读取对应接口服务器的配置数据,更新至本地缓存中。接口服务器周期性地读取配置数据和分布式缓存周期性地读取数据可以同时进行或分别进行,具体视各自的周期时间而定。在一个实施例中,参照图4所示,接口服务器111a自整点开始,每隔5分钟主动从分布式缓存12中拉取配置数据到本地缓存1110中,这样即使接口服务器111a被拉出拉入接口服务集群,该接口服务器111a也与其他接口服务器一个时间点同时同从分布式缓存12中读取了配置数据,则配置数据的一致性有了保证。
在上述定期读取全量配置数据的实施例中,周期性地读取配置数据的设计是为了防止对下游数据的冲击,如缓存穿透,缓存击穿,缓存雪崩等问题;而且配置数据本身改动不多,因此不需要实时全量读取。另外,分布式缓存中的配置数据如果没有备份到永久性存储设备,则在接口服务器的本地缓存失效时会导致服务完全失败的情况,因此配置宽表的作用还在于让接口服务器可以有一个从数据库集群的配置宽表中恢复数据进而恢复服务的备案。
图5示出实施例中实时读取增量配置数据的主要步骤,参照图5所示,配置数据读取方法还包括实时读取增量配置数据的步骤S500,实时读取增量配置数据的过程具体包括:步骤S520,数据库集群接收到新增配置数据时,发起携带新增配置数据的配置变更通知;步骤S530,分布式缓存根据配置变更通知,通过快照服务将新增配置数据关联写入数据库集群的配置宽表中;以及步骤S540,快照服务自配置宽表中读取增量配置数据,写入分布式缓存。进一步的,实时读取增量配置数据的过程还包括:步骤S550,分布式缓存接收到增量配置数据时,发起携带增量配置数据的配置变更通知;以及步骤S560,接口服务器根据配置变更通知,自分布式缓存中读取增量配置数据,写入本地缓存。
在一个实施例中,上述实时读取增量配置数据的步骤S500采用长轮询(Long-Polling)的方式获取增量配置数据。长轮询通过部署于接口服务层、分布式缓存和数据库集群之间的程序协调服务实现,程序协调服务例如是Zookeeper集群,可以实时地实现变更消息通知。
具体来说,参照图6所示的实时读取增量配置数据的实施场景,是以推的模式实时读取变更的配置数据的过程。接口服务器111a发起长轮询Long-Polling请求后,等待分布式缓存12的响应。当分布式缓存12中配置数据变动后,向Zookeeper集群14发送配置变更通知,其中携带了增量配置数据的相关更改标志,则Zookeeper集群14会据此生成分布式缓存数据变动项,以响应接口服务器111a的长轮询Long-Polling请求。接口服务器111a之后可以根据配置变更通知,自分布式缓存12中实时拉取增量配置数据,写入本地缓存。同理,分布式缓存12发起长轮询Long-Polling请求后,等待数据库集群13的响应。当数据库集群13中配置数据变动后,向Zookeeper集群14发送配置变更通知,其中携带了新增配置数据的相关更改标志,则Zookeeper集群14会据此生成数据库配置数据变动项,以响应分布式缓存12的长轮询Long-Polling请求。分布式缓存12之后可以根据配置变更通知,通过快照服务将新增配置数据关联写入数据库集群的配置宽表中,以刷新配置宽表,然后读取配置宽表中的增量配置数据至分布式缓存。
上述读取增量配置数据的实施例中,采用Long-Polling机制而非消息通知机制可以解决接口服务器和分布式缓存平台各个节点数据不一致的问题,同时也避免了网络长连接数过多的问题。传统的用消息通知到达每个集群节点有一定延迟,并且延迟情况因为网络文档等不一样,这样会导致每个服务节点的数据不一致。上述实施例采用当配置数据改动,再走一遍配置数据读取通道读数据的方案,通过一种渠道改数据比多种渠道改数据更安全,配置数据往往很重要,也能避免一些脏数据,后期也方便开发人员维护和配置数据业务上的改动。
在一个具体的应用场景中,上述的配置数据读取方法部署于A/B实验分流器后台服务上,接收各个A/B实验分流请求,QPS(每秒查询率)高峰能达到5000,随着A/B实验不断接入,QPS还能不断增长,可以实现平均QPS2000以上,P99(过去10秒内最慢的1%的请求的平均延迟)线维持在10ms以下,取得了很好的可变的关系型配置数据的高性能实时读取效果。
综上,本发明的配置数据读取方法通过接口服务器在接收到配置数据读取请求时先从本地缓存中查找配置数据,提高响应速度,实现对配置数据的高效读取;通过快照服务确保接口服务器访问分布式缓存时自可读缓存服务器中读取配置数据,保证配置数据的完整读取,并保证配置数据的一致性;通过定期读取全量配置数据以及实时读取增量配置数据,实现对可变的关系型配置数据的高效读取,满足实时性、一致性、高并发、高性能和高可用的读取需求。
本发明实施例还提供一种配置数据读取***,参照图7所示,配置数据读取***包括接口服务器111和分布式缓存12,接口服务器111包括:读取请求响应模块1112,用于响应配置数据读取请求,自本地缓存中读取配置数据;本地缓存读取模块1113,用于当自本地缓存中读取到与配置数据读取请求匹配的配置数据,则返回自本地缓存中读取到的配置数据;以及分布式缓存读取模块1114,用于当本地缓存中没有与配置数据读取请求匹配的配置数据,从分布式缓存12中读取配置数据,包括:通过配置于分布式缓存12中的快照服务查找可读缓存服务器;自可读缓存服务器中读取与配置数据读取请求匹配的配置数据;以及返回自可读缓存服务器中读取到的配置数据。
在一些实施例中,配置数据读取***还可包括用于实现上述任意配置数据读取方法实施例中各步骤的功能模块。本发明的配置数据读取***通过接口服务器在接收到配置数据读取请求时先从本地缓存中查找配置数据,提高响应速度,实现对配置数据的高效读取;通过快照服务确保接口服务器访问分布式缓存时自可读缓存服务器中读取配置数据,保证配置数据的完整读取,并保证配置数据的一致性;并可通过定期读取全量配置数据以及实时读取增量配置数据,实现对可变的关系型配置数据的高效读取,满足实时性、一致性、高并发、高性能和高可用的读取需求。
本发明实施例还提供一种电子设备,包括处理器和存储器,存储器中存储有可执行指令,处理器被配置为经由执行可执行指令来执行上述实施例中的配置数据读取方法的步骤。
如上所述,本发明的电子设备能够通过接口服务器在接收到配置数据读取请求时先从本地缓存中查找配置数据,提高响应速度,实现对配置数据的高效读取;通过快照服务确保接口服务器访问分布式缓存时自可读缓存服务器中读取配置数据,保证配置数据的完整读取,并保证配置数据的一致性;并可通过定期读取全量配置数据以及实时读取增量配置数据,实现对可变的关系型配置数据的高效读取,满足实时性、一致性、高并发、高性能和高可用的读取需求。
图8是本发明实施例中电子设备的结构示意图,应当理解的是,图8仅仅是示意性地示出各个模块,这些模块可以是虚拟的软件模块或实际的硬件模块,这些模块的合并、拆分及其余模块的增加都在本发明的保护范围之内。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
下面参照图8来描述本发明的电子设备600。图8显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行上述实施例中描述的配置数据读取方法的步骤。例如,处理单元610可以执行如图2、图3和图5所示的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一个或多个程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700通信,外部设备700可以是键盘、指向设备、蓝牙设备等设备中的一种或多种。这些外部设备700使得用户能与该电子设备600进行交互通信。电子设备600也能与一个或多个其它计算设备进行通信,所示计算机设备包括路由器、调制解调器。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储平台等。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现上述实施例描述的配置数据读取方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行上述实施例描述的配置数据读取方法的步骤。
如上所述,本发明的计算机可读存储介质能够通过接口服务器在接收到配置数据读取请求时先从本地缓存中查找配置数据,提高响应速度,实现对配置数据的高效读取;通过快照服务确保接口服务器访问分布式缓存时自可读缓存服务器中读取配置数据,保证配置数据的完整读取,并保证配置数据的一致性;并可通过定期读取全量配置数据以及实时读取增量配置数据,实现对可变的关系型配置数据的高效读取,满足实时性、一致性、高并发、高性能和高可用的读取需求。
图9是本发明的计算机可读存储介质的结构示意图。参考图9所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括但不限于:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备,例如利用因特网服务提供商来通过因特网连接。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (11)
1.一种配置数据读取方法,其特征在于,包括如下步骤:
接口服务器响应于配置数据读取请求,自本地缓存中读取配置数据;
若自所述本地缓存中读取到与所述配置数据读取请求匹配的配置数据,则返回自所述本地缓存中读取到的配置数据;
若所述本地缓存中没有与所述配置数据读取请求匹配的配置数据,则所述接口服务器从分布式缓存中读取配置数据,包括:
通过配置于所述分布式缓存中的快照服务查找可读缓存服务器;
自所述可读缓存服务器中读取与所述配置数据读取请求匹配的配置数据;以及
返回自所述可读缓存服务器中读取到的配置数据;
所述配置数据读取方法还包括定期读取全量配置数据的步骤,所述定期读取全量配置数据的步骤包括:
所述快照服务周期性地关联数据库集群中的所有配置数据,并将关联后的配置数据写入所述数据库集群的配置宽表中;以及
所述快照服务自所述配置宽表中读取全量配置数据,写入所述分布式缓存。
2.如权利要求1所述的配置数据读取方法,其特征在于,所述写入所述分布式缓存的步骤包括:
查找所述分布式缓存中的可写缓存服务器;
清空所述可写缓存服务器,并将读取的全量配置数据写入所述可写缓存服务器;以及
写入完成后将所述可写缓存服务器标记为更新后的可读缓存服务器,并将所述可读缓存服务器标记为更新后的可写缓存服务器。
3.如权利要求1所述的配置数据读取方法,其特征在于,所述定期读取全量配置数据的步骤还包括:
所述接口服务器周期性地自所述可读缓存服务器中读取对应所述接口服务器的配置数据,更新至所述本地缓存中。
4.如权利要求1所述的配置数据读取方法,其特征在于,还包括实时读取增量配置数据的步骤,所述实时读取增量配置数据的步骤包括:
数据库集群接收到新增配置数据时,发起携带所述新增配置数据的配置变更通知;
所述分布式缓存根据所述配置变更通知,通过所述快照服务将所述新增配置数据关联写入所述数据库集群的配置宽表中;以及
所述快照服务自所述配置宽表中读取增量配置数据,写入所述分布式缓存。
5.如权利要求4所述的配置数据读取方法,其特征在于,所述实时读取增量配置数据的步骤还包括:
所述分布式缓存接收到所述增量配置数据时,发起携带所述增量配置数据的配置变更通知;以及
所述接口服务器根据所述配置变更通知,自所述分布式缓存中读取所述增量配置数据,写入所述本地缓存。
6.如权利要求4或5所述的配置数据读取方法,其特征在于,所述实时读取增量配置数据的步骤中,采用长轮询的方式获取增量配置数据。
7.如权利要求1所述的配置数据读取方法,其特征在于,所述分布式缓存中包括多个分布式的缓存服务器,所述快照服务配置于一缓存服务器上,当配置所述快照服务的缓存服务器故障时,所述快照服务自动在所述分布式缓存的另一缓存服务器上实时启动。
8.如权利要求1所述的配置数据读取方法,其特征在于,所述接口服务器配置于接口服务集群中,所述接口服务集群中包括多个分布式的接口服务器,每个接口服务器响应与其对应的配置数据读取请求。
9.一种配置数据读取***,其特征在于,包括接口服务器和分布式缓存,所述接口服务器包括:
读取请求响应模块,用于响应配置数据读取请求,自本地缓存中读取配置数据;
本地缓存读取模块,用于当自所述本地缓存中读取到与所述配置数据读取请求匹配的配置数据,则返回自所述本地缓存中读取到的配置数据;以及
分布式缓存读取模块,用于当所述本地缓存中没有与所述配置数据读取请求匹配的配置数据,从分布式缓存中读取配置数据,包括:通过配置于所述分布式缓存中的快照服务查找可读缓存服务器;自所述可读缓存服务器中读取与所述配置数据读取请求匹配的配置数据;以及返回自所述可读缓存服务器中读取到的配置数据;
其中,所述快照服务还定期读取全量配置数据,包括:周期性地关联数据库集群中的所有配置数据,并将关联后的配置数据写入所述数据库集群的配置宽表中;以及,自所述配置宽表中读取全量配置数据,写入所述分布式缓存。
10.一种电子设备,其特征在于,包括:
一处理器;
一存储器,所述存储器中存储有所述处理器的可执行指令;
其中,所述处理器被配置为经由执行所述可执行指令来执行如权利要求1至8任一项所述的配置数据读取方法的步骤。
11.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现如权利要求1至8任一项所述的配置数据读取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010177947.5A CN111400350B (zh) | 2020-03-13 | 2020-03-13 | 配置数据读取方法、***、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010177947.5A CN111400350B (zh) | 2020-03-13 | 2020-03-13 | 配置数据读取方法、***、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400350A CN111400350A (zh) | 2020-07-10 |
CN111400350B true CN111400350B (zh) | 2023-05-02 |
Family
ID=71432506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010177947.5A Active CN111400350B (zh) | 2020-03-13 | 2020-03-13 | 配置数据读取方法、***、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400350B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112487028A (zh) * | 2020-11-09 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 服务器数据存储的方法、***、电子装置和存储介质 |
CN112333036B (zh) * | 2021-01-06 | 2021-03-30 | 广州技象科技有限公司 | 基于多存储节点的电力物联网配置数据备份方法及装置 |
CN115269660A (zh) * | 2022-09-26 | 2022-11-01 | 平安银行股份有限公司 | 缓存数据处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843396A (zh) * | 2011-06-22 | 2012-12-26 | 中兴通讯股份有限公司 | 一种分布式缓存***中的数据写入及读取方法及装置 |
CN104052824A (zh) * | 2014-07-04 | 2014-09-17 | 哈尔滨工业大学深圳研究生院 | 分布式缓存方法及*** |
US8880812B1 (en) * | 2010-03-31 | 2014-11-04 | Marvell International Ltd. | WWN table management systems and methods |
CN107071059A (zh) * | 2017-05-25 | 2017-08-18 | 腾讯科技(深圳)有限公司 | 分布式缓存服务实现方法、装置、终端、服务器及*** |
CN110555041A (zh) * | 2018-03-30 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341363B2 (en) * | 2010-05-03 | 2012-12-25 | Panzura, Inc. | Efficient cloud network attached storage |
-
2020
- 2020-03-13 CN CN202010177947.5A patent/CN111400350B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8880812B1 (en) * | 2010-03-31 | 2014-11-04 | Marvell International Ltd. | WWN table management systems and methods |
CN102843396A (zh) * | 2011-06-22 | 2012-12-26 | 中兴通讯股份有限公司 | 一种分布式缓存***中的数据写入及读取方法及装置 |
CN104052824A (zh) * | 2014-07-04 | 2014-09-17 | 哈尔滨工业大学深圳研究生院 | 分布式缓存方法及*** |
CN107071059A (zh) * | 2017-05-25 | 2017-08-18 | 腾讯科技(深圳)有限公司 | 分布式缓存服务实现方法、装置、终端、服务器及*** |
CN110555041A (zh) * | 2018-03-30 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
Mikio Kataoka et al.Distributed Cache System for Large-Scale Networks.《2006 International Multi-Conference on Computing in the Global Information Technology - (ICCGI'06)》.2007,第1-6页. * |
鲍远松 等.一种分布式时序数据库的存储架构设计及实现方法.《冶金自动化》.2018,第第2018年卷卷(第第2018年卷期),第250-253页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111400350A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400350B (zh) | 配置数据读取方法、***、电子设备和存储介质 | |
US9449038B2 (en) | Streaming restore of a database from a backup system | |
US20170329528A1 (en) | Efficient data volume replication for block-based storage | |
US20170206260A1 (en) | Reducing data volume durability state for block-based storage | |
RU2598991C2 (ru) | Восстановление данных клиента при перемещениях данных клиента | |
CN110633320A (zh) | 分布式数据服务的处理方法、***、设备及存储介质 | |
CN102938784A (zh) | 应用于分布式存储***中的数据存储方法和*** | |
US20170318099A1 (en) | Method and system for processing tasks in a cloud service | |
CN111897638A (zh) | 分布式任务调度方法及*** | |
CN104506643A (zh) | 分布式存储***的服务器及服务器之间的数据同步方法 | |
US20120278429A1 (en) | Cluster system, synchronization controlling method, server, and synchronization controlling program | |
US20210064473A1 (en) | Method and device for failover in hbase system, and non-transitory computer-readable storage medium | |
CN112905537B (zh) | 文件处理方法、装置、电子设备和存储介质 | |
CN113961510A (zh) | 一种文件处理方法、装置、设备及存储介质 | |
CN113760847A (zh) | 日志数据处理方法、装置、设备及存储介质 | |
CN110781159B (zh) | Ceph目录文件信息读取方法、装置、服务器及存储介质 | |
CN111338834A (zh) | 数据存储方法和装置 | |
CN112131214A (zh) | 数据写入、数据查询的方法、***、设备和存储介质 | |
CN111414356A (zh) | 数据存储方法、装置、非关系数据库***及存储介质 | |
CN113791798B (zh) | 模型更新方法及装置、计算机存储介质、电子设备 | |
CN114746854A (zh) | 移动客户端应用中数据提供者不可知的变更处置 | |
KR102247247B1 (ko) | 데이터베이스 관리 방법 | |
US20230169079A1 (en) | Scaling query processing resources for efficient utilization and performance | |
CN115981559A (zh) | 分布式数据存储方法、装置、电子设备和可读介质 | |
US20230169048A1 (en) | Detecting idle periods at network endpoints for management actions at processing clusters for managed databases |
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 |