数据处理方法及装置、电子设备、计算机存储介质制造方法及图纸

技术编号:24853430 阅读:27 留言:0更新日期:2020-07-10 19:07
本申请公开了数据处理方法及装置、电子设备、计算机存储介质,该方法包括:将底层数据库中的数据同步至搜索服务器;响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。将数据库中的数据同步至搜索服务器,在业务模块读取数据时,利用搜索服务器提供读取数据的服务,避免业务模块直接访问数据库而增大数据库压力,为数据快速吞吐提供服务支撑,减小高流量访问下数据库的压力,避免各业务模块的接口互相争夺资源,提高业务模块写入、读取数据时数据库的响应速度,提高数据库的性能表现。

【技术实现步骤摘要】
数据处理方法及装置、电子设备、计算机存储介质
本申请涉及数据处理
,尤其涉及数据处理方法及装置、电子设备、计算机存储介质。
技术介绍
现有技术下数据库很多采用单库单表的形式,即所有表都在同一个数据库下,为所有表建立索引以加快访问速度,并且服务是一个单体应用JAR包(JavaARchive,Java归档)。单库单表数据库的单机存储容量、连接数、处理能力是有限的,在日均50万单级别的入库、出库、短信发送等业务操作下够用,但是随着业务规模进一步扩大,一些业务模块的流量不断增大,由于部分业务模块的api接口直连数据库,在高流量访问下数据库压力就会直线增大,且因资源有限无法及时释放,最终导致各业务模块的接口互相争夺资源,业务模块写入、读取数据时数据库的响应速度变慢,性能表现较差。
技术实现思路
本申请的目的在于提供数据处理方法及装置、电子设备、计算机存储介质,解决现有技术的不足,利用搜索服务器提供读取数据的服务,为数据快速吞吐提供服务支撑,解决单表数据量较大导致数据库性能较差的问题,减小高流量访问下数据库的压力,避免各业务模块的接口互相争夺资源,提高业务模块写入、读取数据时数据库的响应速度。本申请的目的采用以下技术方案实现:第一方面,本申请提供了一种数据处理方法,包括:将底层数据库中的数据同步至搜索服务器;响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。将数据库中的数据同步至搜索服务器,在业务模块读取数据时,利用搜索服务器提供读取数据的服务,避免业务模块直接访问数据库而增大数据库压力,为数据快速吞吐提供服务支撑,减小高流量访问下数据库的压力,避免各业务模块的接口互相争夺资源,提高业务模块写入、读取数据时数据库的响应速度,提高数据库的性能表现。可选地,还包括:响应于第一业务模块或第二业务模块写入数据的请求,将数据写入redis数据库;将所述redis数据库中的数据写入所述底层数据库;所述响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块,包括:响应于所述第一业务模块读取数据的请求,读取所述redis数据库中的数据并发送至所述第一业务模块;响应于所述第二业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述第二业务模块。利用redis数据库将业务模块的数据写入底层数据库,在读取数据时,对于部分业务模块,可以直接读取redis数据库中的数据,对于另外一些业务模块,可以读取搜索服务器中的数据,由此减小搜索服务器的压力。底层数据库只负责写入数据,redis数据库、搜索服务器提供读取查询数据的服务,通过类似读写分离的思想提高读取数据的响应速度。可选地,所述底层数据库包括基类数据库和核心数据库;所述将所述redis数据库中的数据写入所述底层数据库,包括:将所述redis数据库中所述第一业务模块写入的数据写入所述基类数据库;将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库。将数据库拆分为基类数据库和核心数据库,并有针对性地将不同业务模块的数据分别写入不同的数据库,例如在基类数据库中保存业务访问量较小的数据,在核心数据库中保存业务访问量较大的数据,通过拆分数据库以减小每个数据库中的数据量,提高单个数据库的性能。可选地,所述将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库,包括:将所述redis数据库中所述第二业务模块写入的数据对应的门店ID除以N得到的余数记为a;所述门店ID用正整数表示,所述核心数据库包括第0库至第N-1库,N是大于1的正整数,a是非负整数;将所述redis数据库中所述第二业务模块写入的数据写入第a库。进一步拆分核心数据库为多个库,并利用预定的选库规则将数据写入门店ID对应的库中,由此进一步减小单个库中的数据量,并使得同一门店ID对应的数据保存至同一库。可选地,所述将所述redis数据库中所述第二业务模块写入的数据写入第a库,包括:将所述redis数据库中所述第二业务模块写入的数据对应的idx除以M得到的余数记为b;所述idx是所述数据的唯一标识,用正整数表示,所述第0库至所述第N-1库均包括表结构相同的第0表至第M-1表,M是大于1的正整数,b是非负整数;将所述redis数据库中所述第二业务模块写入的数据写入第a库中第b表。将单表拆分为多个表,利用预定的选表规则将数据写入idx对应的表中,进一步减小单表数据量,提高数据库的性能。可选地,所述第0库至所述第N-1库均包括表结构相同且与每个表单类型相对应的第0表至第M-1表;所述将所述redis数据库中所述第二业务模块写入的数据写入第a库中第b表,包括:将所述redis数据库中所述第二业务模块写入的数据写入第a库中与所写入的数据的表单类型相对应的第b表。将数据按照表单类型写入对应表中,表单类型例如是运单表、短信发送记录、扫描记录表等,进一步减小单表数据量,提高数据库的性能。可选地,还包括:每隔所述预定时长,根据所述底层数据库中数据的最后更新时间,将所述底层数据库中预定表的增量数据同步至所述搜索服务器。定期将增量数据同步至搜索服务器,保持搜索服务器与底层数据库中数据的一致性。第二方面,本申请提供了一种数据处理装置,包括:同步模块,用于将底层数据库中的数据同步至搜索服务器;读取模块,用于响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。可选地,所述数据处理装置还包括写入模块,所述写入模块包括:一次写入子模块,用于响应于第一业务模块或第二业务模块写入数据的请求,将数据写入redis数据库;二次写入子模块,用于将所述redis数据库中的数据写入所述底层数据库;所述读取模块包括:第一读取子模块,用于响应于所述第一业务模块读取数据的请求,读取所述redis数据库中的数据并发送至所述第一业务模块;第二读取子模块,用于响应于所述第二业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述第二业务模块。可选地,所述底层数据库包括基类数据库和核心数据库;所述二次写入子模块包括:基类写入单元,用于将所述redis数据库中所述第一业务模块写入的数据写入所述基类数据库;核心写入单元,用于将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库。可选地,所述核心写入单元包括:选库子单元,用于将所述redis数据库中所述第二业务模块写入的数据对应的门店ID除以N得到的余数记为a;所述门店ID用正整数表示,所述核心数据库包括第0库至第N-1库,N是大于1的正整数,a是非负整数;写入子单元,用于将所述redis数据库中所述第二业务模块写入的数据写入第a库。可选地,所述写入子单元包本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n将底层数据库中的数据同步至搜索服务器;/n响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
将底层数据库中的数据同步至搜索服务器;
响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块。


2.根据权利要求1所述的数据处理方法,其特征在于,还包括:
响应于第一业务模块或第二业务模块写入数据的请求,将数据写入redis数据库;
将所述redis数据库中的数据写入所述底层数据库;
所述响应于业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述业务模块,包括:
响应于所述第一业务模块读取数据的请求,读取所述redis数据库中的数据并发送至所述第一业务模块;
响应于所述第二业务模块读取数据的请求,读取所述搜索服务器中的数据并发送至所述第二业务模块。


3.根据权利要求2所述的数据处理方法,其特征在于,所述底层数据库包括基类数据库和核心数据库;
所述将所述redis数据库中的数据写入所述底层数据库,包括:
将所述redis数据库中所述第一业务模块写入的数据写入所述基类数据库;
将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库。


4.根据权利要求3所述的数据处理方法,其特征在于,所述将所述redis数据库中所述第二业务模块写入的数据写入所述核心数据库,包括:
将所述redis数据库中所述第二业务模块写入的数据对应的门店ID除以N得到的余数记为a;所述门店ID用正整数表示,所述核心数据库包括第0库至第N-1库,N是大于1的正整数,a是非负整数;
将所述redis数据库中所述第二业务模块写入的数据写入第a库。


5.根据权利要求4所述的数据处理方法,其特征在于...

【专利技术属性】
技术研发人员:刘武徐佳吴俊杰李安达
申请(专利权)人:上海东普信息科技有限公司
类型:发明
国别省市:上海;31

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

1