一种Web前端微服务架构的实现方法及其架构与流程

文档序号:27947791发布日期:2021-12-11 15:26阅读:728来源:国知局
一种Web前端微服务架构的实现方法及其架构与流程
一种web前端微服务架构的实现方法及其架构
技术领域
1.本发明属于信息通信技术领域,具体涉及一种web前端微服务架构的实现方法及其架构。


背景技术:

2.随着互联网的发展,使人们越来越感受到技术带来方便与快捷。伴随着5g的发展,各行各业已经不单单满足各自的领域单一发展来为用户提供服务。不同专业、不同领域相互融合的需求正在快速增长,从而发掘出新的业务增长点,为用户提供更好更方便的互联网服务。在此大背景的前提下,为了满足各行各业网络服务平台web端的相互融合的需求,而产生一种通过微服务的设计思想,实现各个网络服务平台web端的相互融合。
3.该方法将各个平台的网络服务平台web端定义为成单个微服务系统,通过微服务架构设计将各个微服务融合在一起,形成融合后的web端服务平台(后面简称大平台,或称微服务聚合平台)。对用户而言,只需要对大平台进行使用,不需要在不同的业务中访问不同的地址进行访问,从而提高用户体验;而对服务提供方来说,如何以最小的风险完成微服务的融合与业务的整合。
4.在各个微服务中进行大平台的融合中,大平台通过html技术中的iframe标签将各个微服务嵌入到大平台中,通过该技术仅仅是将各个微服务在大平台进行了页面展示。对于用户而言在使用大平台时,像使用了一个整体网站那样便利和方便的感觉,而对于服务提供方来说,在融合中,如何解决用户数据的接收请求,微服务与微服务之间产生新的业务而造成需要两个不同微服务之间需要数据通信的问题,在这种情况如何保证实时性,如何规避浏览器内置的安全策略并能安全的进行数据通信的问题;大平台与微服务之间的通信问题。


技术实现要素:

5.为解决背景技术提到的问题,在本发明的第一方面提供了一种web前端微服务架构的实现方法:获取多个微服务在微服务聚合平台的iframe标签,并根据每个微服务的iframe标签对其进行注册与管理;根据每个微服务的业务定义确定其通信管理机制;所述通信管理机制包括每个微服务与其他微服务之间的通信,每个微服务与微服务聚合平台的通信;利用sessionstorage、localstorage和window监听,实现各微服务之间,以及每个微服务与微服务聚合平台之间的实时数据同步。
6.在本发明的一些实施例中,所述根据每个微服务的业务定义确定其通信管理机制包括:确定每个微服务的架构设计数据格式和业务数据格式;根据所述架构设计数据格式确定每个微服务与微服务聚合平台的通信方式;根据所述业务数据格式确定每个微服务与其他微服务之间的通信方式。
7.进一步的,所述每个微服务与其他微服务之间通过微服务聚合平台实现间接通信。
8.在本发明的一些实施例中,所述利用sessionstorage、localstorage和window监听,实现各微服务之间,以及每个微服务与微服务聚合平台之间的实时数据同步包括:根据sessionstorage和localstorage确定每个微服务和微服务聚合平台的对应业务数据的存储方式;利用所述window监听所述sessionstorage和localstorage事件值改变的监听事件:若监听事件触发,则根据每个微服务的架构设计数据格式进行数据实时的通信的分发管理。
9.进一步的,所述根据sessionstorage和localstorage确定所述每个微服务和微服务聚合平台的对应业务数据的存储方式包括:根据每个微服务的业务数据格式确定业务数据的sessionstorage和localstorage的存储位置。
10.在上述的实施例中,所述每个微服务与微服务聚合平台的通过postmessage进行通信。
11.本发明的第二方面,提供了一种web前端微服务架构,包括获取模块、确定模块、监听模块,所述获取模块,用于获取多个微服务在微服务聚合平台的iframe标签,并根据每个微服务的iframe标签对其进行注册与管理;所述确定模块,用于根据每个微服务的业务定义确定其通信管理机制;所述通信管理机制包括每个微服务与其他微服务之间的通信,每个微服务与微服务聚合平台的通信;所述监听模块,用于利用sessionstorage、localstorage和window监听,实现各微服务之间,以及每个微服务与微服务聚合平台之间的实时数据同步。
12.进一步的,所述确定模块包括第一确定单元、第二确定单元和第三确定单元,所述第一确定单元,用于确定每个微服务的架构设计数据格式和业务数据格式;所述第一确定单元,用于根据所述架构设计数据格式确定每个微服务与微服务聚合平台的通信方式;所述第一确定单元,用于根据所述业务数据格式确定每个微服务与其他微服务之间的通信方式。
13.本发明的第三方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第一方面提供的web前端微服务架构的实现方法。
14.本发明的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本发明第一方面提供的web前端微服务架构的实现方法。
15.本发明的有益效果是:
16.1.在进行各个微服务的融合,可能会因为开发的技术框架,实现的技术选型不一样,web开发技术版本不一样,而造成融合困难,工作量大,严重的可能会因为了能将某个服务融合进来进项该服务整个重构。极大的增加了项目的开发、维护及成本风险;本发明通过各微服务之间的隔离,解决了上述问题;
17.2.本发明能快速将一个微服务融合到大平台中,减少二次开发工作量;并对大平台进行解耦,当微服务出现故障中,不会影响大平台的正常工作,只会影响到微服务模块;
18.3.在开发与维护过程中,各个微服务团队只需要专注该微服务的开发与业务,无需其他的,不需要对别的微服务与大平台有详细的了解;在知识产权安全这块,该方法能有效隔离其他微服务及大平台的源码泄漏的风险,减少各行各业对各自ip保护的顾虑;
19.4.对于大数据平台与分布式服务来说,每个微服务主要进行相对单一的业务处理,不需要其他一般web端都需要的相似的服务(如登录、注册、修改密码等一般web端的服务功能),从而提高了服务器资源的利用效率。
附图说明
20.图1为本发明的一些实施中的web前端微服务架构的实现方法的基本流程示意图;
21.图2为本发明的一些实施中的web前端微服务架构的实现方法的具体流程示意图;
22.图3为本发明的一些实施中的web前端微服务架构的结构示意图;
23.图4为本发明的一些实施中的确定模块的结构示意图;
24.图5为本发明的一些实施中的web前端微服务架构的具体结构示意图;
25.图6为本发明的一些实施中的电子设备的结构示意图。
具体实施方式
26.以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
27.参考图1,在本发明的第一方面提供了一种web前端微服务架构的实现方法:s100.获取多个微服务在微服务聚合平台的iframe标签,并根据每个微服务的iframe标签对其进行注册与管理;s200.根据每个微服务的业务定义确定其通信管理机制;所述通信管理机制包括每个微服务与其他微服务之间的通信,每个微服务与微服务聚合平台的通信;s300.利用sessionstorage、localstorage和window监听,实现各微服务之间,以及每个微服务与微服务聚合平台之间的实时数据同步。
28.可以理解,iframe标签是一种网页嵌入技术,它可以将一个网页嵌入的另一个网页中,而iframe标签规定一个内联框架,iframe元素会创建包含另外一个文档的内联框架(即行内框架),一个内联框架被用来在当前html文档中嵌入另一个文档。微服务聚合平台是bff对应的硬件实体,bff(backends for frontends)也称聚合层或者适配层,它主要承接一个适配角色:将内部复杂的微服务,适配成对各种不同用户体验(无线/web/h5/第三方等)友好和统一的api。
29.参考图2,在本发明的一些实施例的步骤s200中,所述根据每个微服务的业务定义确定其通信管理机制包括:s201.确定每个微服务的架构设计数据格式和业务数据格式;s202.根据所述架构设计数据格式确定每个微服务与微服务聚合平台的通信方式;s203.根据所述业务数据格式确定每个微服务与其他微服务之间的通信方式。
30.为了实现每个微服务与其他微服务之间的数据隔离,减少微服务每个微服务与其他微服务的影响,所述每个微服务与其他微服务之间通过微服务聚合平台实现间接通信。
31.具体地,当用户发出访问页面请求时,微服务聚合平台(大平台服务)根据iframe标签判断是否操作数据:若是,则由微服务聚合平台中的通信模块判断是否通知其他微服务(例如,web2);若否,在根据iframe标签(iframe标签管理模块)展示相关的页面内容。
32.在进行判断是否通知其他微服务时:若否,则直接转入web1的sdk(将页面、脚本等导入到web1)中,web1的sdk将相关的数据经微服务聚合返回给用户;若是,则通过微服务聚合平台中的通信模块转入其他微服务的sdk中(例如web2),web2的sdk将相关的数据经微服
务聚合返回给用户。
33.应理解,sdk(software development kit,软件开发工具包)理解为本发明中微服务的接口,即为其他微服务提供调用服务等。
34.在本发明的一些实施例的步骤s300中,所述利用sessionstorage、localstorage和window监听,实现各微服务之间,以及每个微服务与微服务聚合平台之间的实时数据同步包括:s301.根据sessionstorage和localstorage确定每个微服务和微服务聚合平台的对应业务数据的存储方式;s302.利用所述window监听所述sessionstorage和localstorage事件值改变的监听事件:若监听事件触发,则根据每个微服务的架构设计数据格式进行数据实时的通信的分发管理。
35.进一步的,所述根据sessionstorage和localstorage确定所述每个微服务和微服务聚合平台的对应业务数据的存储方式包括:根据每个微服务的业务数据格式确定业务数据的sessionstorage和localstorage的存储位置。
36.具体地:
37.1.sessionstorage:将数据保存在session对象中。所谓session,是指用户在浏览某个微服务的页面时,从进入该页面到浏览器关闭所经过的这段时间,也就是用户浏览该页面所花费的时间。session对象可以用来保存在这段时间内所要求保存的任何数据。
38.2.localstorage:将数据保存在用户端本地的硬件设备(通常指硬盘,也可以是其他硬件设备)中,即使浏览器被关闭了,该数据仍然存在,下次打开浏览器访问某个微服务时仍然可以继续使用。
39.这两者的区别在于,sessionstorage为临时保存,而localstorage为永久保存。
40.在上述的实施例中,所述每个微服务与微服务聚合平台的通过postmessage进行通信。
41.实施例2
42.参考图3,本发明的第二方面,提供了一种web前端微服务架构1,包括获取模块11、确定模块12、监听模块13,所述获取模块11,用于获取多个微服务在微服务聚合平台的iframe标签,并根据每个微服务的iframe标签对其进行注册与管理;所述确定模块12,用于根据每个微服务的业务定义确定其通信管理机制;所述通信管理机制包括每个微服务与其他微服务之间的通信,每个微服务与微服务聚合平台的通信;所述监听模块13,用于利用sessionstorage、localstorage和window监听,实现各微服务之间,以及每个微服务与微服务聚合平台之间的实时数据同步。
43.参考图4,进一步的,所述确定模块12包括第一确定单元、第二确定单元和第三确定单元,所述第一确定单元,用于确定每个微服务的架构设计数据格式和业务数据格式;所述第一确定单元,用于根据所述架构设计数据格式确定每个微服务与微服务聚合平台的通信方式;所述第一确定单元,用于根据所述业务数据格式确定每个微服务与其他微服务之间的通信方式。
44.参考图5,示意性地,图中实线箭头代表页面、脚本等html资源流向;虚线箭头代表交互数据的流向;在一个具体的实施例中,获取模块11集成在iframe标签管理模块中,而确定模块12和监听模块13被集成在大平台通信模块以及每个微服务的sdk中;且大平台通信模块包括windows时间监听模块、通信管理数据以及大平台缓存的sessionstorage、
localstorage;每个微服务的sdk中包括windows时间监听模块、通信管理数据以及大平台缓存的sessionstorage、localstorage。
45.实施例3
46.本发明的第三方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第一方面提供的方法。
47.参考图6,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
48.通常以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
49.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom502被安装。在该计算机程序被处理装置501执行时,执行本公开的实施例的方法中限定的上述功能。需要说明的是,本公开的实施例所描述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
50.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未
装配入该电子设备中。上述计算机可读介质承载有一个或者多个计算机程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
51.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++、python,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
52.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
53.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1