基于微服务架构的主题数据服务实现方法、装置及设备与流程

文档序号:29142341发布日期:2022-03-05 03:53阅读:424来源:国知局
基于微服务架构的主题数据服务实现方法、装置及设备与流程

1.本技术涉及数据处理技术领域,具体涉及一种基于微服务架构的主题数据服务实现方法、装置及设备。


背景技术:

2.随着信息技术的蓬勃发展,企业也迎来了生产管理与营销模式的数字化变革。数据服务基于业务需求,对底层信息系统中的业务主题数据进行采集与处理,并对外生成接口,以满足上层应用的数据调用需求,使得数据在完整的业务链上流通。
3.目前企业内部数据服务主要采用定制化开发模式,业务人员基于业务逻辑提出实际数据需求,信息人员管理底层数据库并进行一次性数据服务开发与部署,再将数据通过数据接口形式提供给上层业务部门。然而,定制化开发带来了较大的资源浪费,其维护性、复用性差。
4.目前市面上的数据服务构建公司所提供的服务无法对数据进行统一建模与规范定义,对于同业务主题的数据服务,需要多次定义服务与字段对应关系,存在数据服务定义代码冗杂,可拓展性不高等问题。另外,底层数据繁杂而信息人员数量有限,难以及时响应上层业务数量多、变化大的数据提取需求,指标统计口径不统一造成的数据不准确问题也难以追溯。
5.因此,如何管理底层异构多源业务数据、制定统一的指标规范、自动、可拓展地为业务主题构建可复用的数据服务,减少代码冗余同时兼顾调用效率,降低开发成本与运营效率,成为了本领域亟待解决的问题。


技术实现要素:

6.本技术的目的是提供一种基于微服务架构的主题数据服务实现方法、装置及设备。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
7.根据本技术实施例的一个方面,提供一种基于微服务架构的主题数据服务实现方法,包括:
8.接收并存储来自用户终端的配置信息、设置并存储多个可调用微服务,以及向外提供可调用微服务;
9.读取所述配置信息中的任务配置信息,基于所述任务配置信息获取底层业务数据;
10.读取所述配置信息中的指标配置信息,并调用所述可调用微服务对所述指标配置信息和所述底层业务数据进行指标分布式计算,得到计算结果。
11.在本技术的一些实施例中,所述接收并存储来自用户终端的配置信息、设置并存储多个可调用微服务,以及向外提供可调用微服务,包括:
12.接收并存储来自用户终端的配置信息、设置并存储多个可调用微服务;
13.接收微服务调用请求;
14.对所述微服务调用请求进行验证并实现微服务查询,并推荐查询到的微服务;
15.接收所述查询到的微服务并通过调用接口向外发送所述查询到的微服务。
16.在本技术的一些实施例中,所述任务配置信息包括主题信息与数据源;所述读取所述配置信息中的任务配置信息,基于所述任务配置信息获取底层业务数据,包括:
17.读取任务配置信息中的主题信息与数据源以及所述主题信息与所述数据源的绑定关系;
18.基于所述绑定关系以所述主题信息为粒度生成底层业务数据;所述底层业务数据包括etl任务配置文件数据。
19.在本技术的一些实施例中,所述指标配置信息包括复合指标信息及派生指标信息;所述可调用微服务包括分组函数及计算函数;所述读取所述配置信息中的指标配置信息,并调用所述可调用微服务对所述指标配置信息和所述底层业务数据进行指标分布式计算,得到计算结果,包括:
20.读取所述指标配置信息中的复合指标信息及派生指标信息;
21.调用所述可调用微服务中的所述分组函数及所述计算函数,对所述复合指标信息及所述派生指标信息进行分布式计算,得到计算结果。
22.根据本技术实施例的另一个方面,提供一种基于微服务架构的主题数据服务实现装置,包括:
23.微服务调用模块,用于接收并存储来自用户终端的配置信息、设置并存储多个可调用微服务,以及向外提供可调用微服务;
24.etl任务执行模块,用于读取所述配置信息中的任务配置信息,基于所述任务配置信息获取底层业务数据;
25.分布式计算引擎模块,用于读取所述配置信息中的指标配置信息,并调用所述可调用微服务对所述指标配置信息和所述底层业务数据进行指标分布式计算,得到计算结果。
26.在本技术的一些实施例中,所述微服务调用模块包括可调用微服务单元、注册中心单元以及应用服务单元;
27.所述可调用微服务单元,用于接收并存储来自用户终端的配置信息、设置并存储多个可调用微服务;
28.所述应用服务单元,用于接收微服务调用请求;
29.所述注册中心单元,用于对所述微服务调用请求进行验证并实现微服务查询,并推荐查询到的微服务;
30.所述应用服务单元,还用于接收所述查询到的微服务并通过调用接口向外发送所述查询到的微服务。
31.在本技术的一些实施例中,所述任务配置信息包括主题信息与数据源;所述etl任务执行模块包括:
32.第一读取单元,用于读取任务配置信息中的主题信息与数据源以及所述主题信息与所述数据源的绑定关系;
33.生成单元,用于基于所述绑定关系以所述主题信息为粒度生成底层业务数据;所述底层业务数据包括etl任务配置文件数据。
34.在本技术的一些实施例中,所述指标配置信息包括复合指标信息及派生指标信息;所述可调用微服务包括分组函数及计算函数;所述分布式计算引擎模块包括:
35.第二读取单元,用于读取所述指标配置信息中的复合指标信息及派生指标信息;
36.计算单元,用于调用所述可调用微服务中的所述分组函数及所述计算函数,对所述复合指标信息及所述派生指标信息进行分布式计算,得到计算结果。
37.本技术实施例的其中一个方面提供的技术方案可以包括以下有益效果:
38.本技术实施例提供的基于微服务架构的主题数据服务实现方法,基于微服务架构对数据进行统一收集与管理,通过自动化数据服务构建为上层业务系统提供标准化、可复用的主题数据服务,有效减少了代码冗余,降低了后台开发成本,提高了数据服务的生成效率、规范性与准确性。
39.本技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,部分特征和优点可以从说明书中推知或毫无疑义地确定,或者通过实施本技术实施例了解。
附图说明
40.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1示出了本技术的一个实施例的基于微服务架构的主题数据服务实现方法流程图;
42.图2示出了图1中的步骤s10的流程图;
43.图3示出了图1中的步骤s20的流程图;
44.图4示出了图1中的步骤s30的流程图;
45.图5示出了本技术另一实施例的一种基于微服务架构的主题数据服务实现装置结构框图;
46.图6示出了图5中的微服务调用模块的结构框图;
47.图7示出了图5中的etl任务执行模块的结构框图;
48.图8示出了图5中的分布式计算引擎模块的结构框图;
49.图9示出了本技术另一实施例的基于微服务架构的主题数据服务实现系统的结构框图;
50.图10示出了本技术另一实施例的电子设备结构框图;
51.图11示出了本技术另一实施例的计算机可读存储介质示意图。
具体实施方式
52.为了使本技术的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本技术做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用
于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
53.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
54.主题为根据实际管理需求对具体业务过程的定义,数据服务是各类数据平台的核心部件之一,对底层信息系统中的数据进行采集与加工,生成数据接口,为bi(business intelligence,商业智能)、辅助决策等上层应用提供数据支撑。
55.参考图1所示,本技术的一个实施例提供了一种基于微服务架构的主题数据服务实现方法,可以包括步骤s10至步骤s30。各步骤如下:
56.s10、接收并存储来自用户终端的配置信息、设置并存储多个可调用微服务,以及向外提供可调用微服务。
57.可调用微服务指的是可被独立调用的低耦合可复用微服务,主要包括数据源注册、主题与指标定义、外部数据注入、指标分组处理、接口创建与数据查询等服务内容。
58.可调用微服务例如可以包括数据源配置微服务、主题配置微服务、数据注入微服务、分组处理微服务、接口配置微服务以及数据查询微服务等等。
59.数据源配置微服务,用于接收数据库、数据文件与数据接口类型数据源配置信息并保存至后端mysql数据库,对异构数据源进行统一管理;对于数据库类型数据源,保存数据库类型、名称、jdbc连接地址、用户名和密码等元数据;对于数据文件类型数据源,保存文件名称、上传时间与文件大小等元数据;对于数据接口类型数据源,保存接口地址与请求方式等元数据。
60.主题配置微服务,用于接收主题及其相关指标配置信息并保存至后端mysql数据库,对业务主题进行统一定义与管理。
61.数据注入微服务,用于接收数据文件与数据接口类型数据进行即时数据注入,并将数据存储至hbase数据库;对于数据文件类型数据源,匹配与文件表头同名字段并进行一次性数据注入;对于数据接口类型数据源,操作人员每调用接口进行一次写操作则完成一次数据注入。
62.分组处理微服务,对于需要进行分组统计分析的派生指标,接收其分组逻辑,调用map对象进行数据分组;
63.接口配置微服务,用于接收数据接口名、入参、返回值及sql查询语句等信息并保存至后端mysql数据库,对接口返回值进行定义并对数据接口进行统一管理;
64.数据查询微服务,用于读取mysql数据库中所存储的接口配置,通过hbase数据查询语言对数据进行筛选、查询与提取,并通过数据接口进行数据返回。
65.参考图2所示,在某些实施方式中,步骤s10可以包括以下步骤:
66.s101、接收并存储来自用户终端的配置信息、设置并存储多个可调用微服务。
67.配置信息可以包括数据源、主题、数据服务等信息,是由用户通过用户终端例如智能手机、个人计算机等设备配置并发送的。
68.s102、接收微服务调用请求。
69.微服务调用请求中包含所需要调用的微服务的相关信息。例如可以包括数据源配置微服务、主题配置微服务、数据注入微服务、分组处理微服务、接口配置微服务以及数据查询微服务等各种微服务的标识信息等。
70.s103、对所述微服务调用请求进行验证并实现微服务查询,并推荐查询到的微服务。
71.验证微服务调用请求之后,根据微服务调用请求中的标识信息,查询对应的微服务,并将其推荐出来。
72.s104、接收所述查询到的微服务并通过调用接口向外发送所述查询到的微服务。
73.通过调用可调用微服务,可以实现数据源注册、主题数据相关配置获取与存储、数据注入与查询等操作。
74.在某些实施方式中,步骤s10可以包括以下步骤:
75.主题配置步骤:接收主题名称及业务描述信息并保存至后端mysql数据库;
76.原子指标配置步骤:接收指标名称、业务描述、数据类型等信息并保存至后端mysql数据库,必选指标为对象id“row”,此id为对象唯一标识符,与数据源中唯一标识符对应;
77.复合指标配置步骤:所属复合指标由原子指标经一定运算规则计算形成,本步骤接收复合指标名称、业务描述、数据类型及指标定义代码等信息并保存至后端mysql数据库;
78.派生指标配置步骤:所属派生指标由原子指标或复合指标经过一定限定条件筛选、聚合形成,本步骤接收派生指标名称、业务描述、数据类型、分组函数及计算函数等信息并保存至后端mysql数据库。
79.在某些实施方式中,步骤s10包括实现动态微服务发现、微服务配置、微服务元数据及流量管理,提供服务可用实例查询并进行调用验证的步骤。具体地,发起对服务调用的应用方,通过rpc调用上述微服务并对外提供restapi。发送服务信息,并上报健康状态;监听服务端消息,接收注册信息并进行服务注册;通过长轮询的方式获取已注册的服务信息,发送服务请求;接收客户端指令并写入日志,并通过一致性模块与服务端交互并确保日志顺序复制;依照顺序处理命令并向客户端返回结果。
80.s20、读取所述配置信息中的任务配置信息,基于所述任务配置信息获取底层业务数据。
81.所述任务配置信息包括主题信息与数据源;参考图3所示,在某些实施方式中,步骤s20可以包括以下步骤:
82.s201、读取任务配置信息中的主题信息与数据源以及所述主题信息与所述数据源的绑定关系。
83.例如,基于任务配置,定时抽取主题原子指标所绑定的底层业务数据至hbase数据库。通过查询mysql数据库中的主题配置信息,读取所存储的主题与数据源之间绑定关系。
84.s202、基于所述绑定关系以所述主题信息为粒度生成底层业务数据;所述底层业务数据包括etl任务配置文件数据。
85.例如,基于上述绑定关系,以主题为粒度生成etl任务配置文件,指定数据来源与
写入地址。启动定时任务,匹配源数据库与目的数据库对象标识符,将数据从业务系统数据库抽取到后端数据存储数据库,默认任务周期为天。
86.s30、读取所述配置信息中的指标配置信息,并调用所述可调用微服务对所述指标配置信息和所述底层业务数据进行指标分布式计算,得到计算结果。
87.所述指标配置信息包括复合指标信息及派生指标信息;所述可调用微服务包括分组函数及计算函数。
88.在某些实施方式中,参考图4所示,步骤s30可以包括以下步骤:
89.s301、读取所述指标配置信息中的复合指标信息及派生指标信息。
90.例如,通过查询mysql数据库中的指标配置信息,读取复合与派生指标的计算函数。
91.s302、调用所述可调用微服务中的所述分组函数及所述计算函数,对所述复合指标信息及所述派生指标信息进行分布式计算,得到计算结果。
92.例如,在某些实施方式中,遍历数据存储数据库中所有主题下的对象,基于计算函数对复合指标及派生指标进行分布式计算,并将存储计算结果至数据存储数据库中。
93.本技术实施例提供的基于微服务架构的主题数据服务实现方法,基于微服务架构对底层异构多源业务数据进行统一收集与管理,通过主题标准化建模对数据标准进行规范化定义,并通过自动化数据服务构建为上层业务系统提供标准化、可复用的主题数据服务,有效减少了代码冗余,降低了后台开发成本,提高了数据服务的生成效率、规范性与准确性。
94.参考图5所示,本技术的另一个实施例提供了一种基于微服务架构的主题数据服务实现装置,包括:
95.微服务调用模块,用于接收并存储来自用户终端的配置信息、设置并存储多个可调用微服务,以及向外提供可调用微服务;
96.etl任务执行模块,用于读取所述配置信息中的任务配置信息,基于所述任务配置信息获取底层业务数据;
97.分布式计算引擎模块,用于读取所述配置信息中的指标配置信息,并调用所述可调用微服务对所述指标配置信息和所述底层业务数据进行指标分布式计算,得到计算结果。
98.参考图6所示,在某些实施方式中,所述微服务调用模块包括可调用微服务单元、注册中心单元以及应用服务单元;
99.所述可调用微服务单元,用于接收并存储来自用户终端的配置信息、设置并存储多个可调用微服务;
100.所述应用服务单元,用于接收微服务调用请求;
101.所述注册中心单元,用于对所述服务调用请求进行验证并实现微服务查询,并推荐查询到的微服务;
102.所述应用服务单元,还用于接收所述查询到的微服务并通过调用接口向外发送所述查询到的微服务。
103.在某些实施方式中,所述任务配置信息包括主题信息与数据源;如图7所示,所述etl任务执行模块包括:
104.第一读取单元,用于读取任务配置信息中的主题信息与数据源以及所述主题信息与所述数据源的绑定关系;
105.生成单元,用于基于所述绑定关系以所述主题信息为粒度生成底层业务数据;所述底层业务数据包括etl任务配置文件数据。
106.在某些实施方式中,所述指标配置信息包括复合指标信息及派生指标信息;所述可调用微服务包括分组函数及计算函数;如图8所示,所述分布式计算引擎模块包括:
107.第二读取单元,用于读取所述指标配置信息中的复合指标信息及派生指标信息;
108.计算单元,用于调用所述可调用微服务中的所述分组函数及所述计算函数,对所述复合指标信息及所述派生指标信息进行分布式计算,得到计算结果。
109.本技术的另一个实施例提供了一种基于微服务架构的主题数据服务实现系统,包括:
110.微服务调用模块,用于接收并存储来自用户终端的配置信息、设置并存储多个可调用微服务,以及向外提供可调用微服务;
111.etl任务执行模块,用于读取所述配置信息中的任务配置信息,基于所述任务配置信息获取底层业务数据;
112.分布式计算引擎模块,用于读取所述配置信息中的指标配置信息,并调用所述可调用微服务对所述指标配置信息和所述底层业务数据进行指标分布式计算,得到计算结果。
113.参考图9所示,本实施例的系统中,微服务调用模块,包括nginx网关、应用服务器、微服务单元和注册中心。etl任务执行模块,包括etl任务执行器、mysql数据库和业务系统异构数据源。分布式计算引擎模块,包括pheonix sql服务器、spark计算引擎和hbase数据库。
114.nginx网关,接收调用请求,并基于轮询模式负载均衡进行请求转发;
115.应用服务器接收nginx网关转发的请求,通过注册中心发现所需调用的微服务,并通过rpc调用所需微服务;
116.调用配置类型微服务时,如数据源配置、主题配置、数据接口配置微服务等,保存配置信息至mysql数据库;
117.etl任务执行器定时读取mysql数据库中的主题与数据源绑定关系,并从数据源中抽取数据至hbase数据库;
118.spark计算引擎读取指标配置,遍历hbase数据库下所有对象,基于配置中的计算函数进行指标计算并将计算结果存储至hbase数据库;
119.调用配置生成的数据接口时,应用服务器调用数据查询微服务,读取mysql服务器中的接口配置,通过phoenix sql服务器利用sql语句操作hbase数据库,对数据库中的数据进行查询并返回,由此完成接口数据查询服务。
120.本技术的另一个实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现上述任一实施方式所述的基于微服务架构的主题数据服务实现方法。如图10所示,所述电子设备10可以包括:处理器100,存储器101,总线102和通信接口103,所述处理器100、通信接口103和存储器101通过总线102连接;所述存储器101中存储有可在所述处理器100上运行的
计算机程序,所述处理器100运行所述计算机程序时执行本技术前述任一实施方式所提供的方法。
121.其中,存储器101可能包含高速随机存取存储器(ram:random access memory),也可能还可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
122.总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器101用于存储程序,所述处理器100在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方式揭示的所述方法可以应用于处理器100中,或者由处理器100实现。
123.处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,可以包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成上述方法的步骤。
124.本技术实施例提供的电子设备与本技术实施例提供的方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
125.本技术的另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述任一实施方式所述的基于微服务架构的主题数据服务实现方法。本技术实施方式还提供一种与前述实施方式所提供的方法对应的计算机可读存储介质,请参考图11,其示出的计算机可读存储介质为光盘20,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的方法。
126.需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
127.本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
128.需要说明的是:
129.术语“模块”并非意图受限于特定物理形式。取决于具体应用,模块可以实现为硬件、固件、软件和/或其组合。此外,不同的模块可以共享公共组件或甚至由相同组件实现。
不同模块之间可以存在或不存在清楚的界限。
130.在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示例一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本技术也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本技术的内容,并且上面对特定语言所做的描述是为了披露本技术的最佳实施方式。
131.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
132.以上所述实施例仅表达了本技术的实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1