服务发布方法及装置、服务器、存储介质制造方法及图纸

技术编号:29465012 阅读:15 留言:0更新日期:2021-07-27 17:52
本申请公开了一种服务发布方法及装置、服务器、存储介质,该方法包括:基于多个待发布服务之间的依赖关系生成初始有向图,并基于初始有向图确定多个待发布服务的初始串行发布序列;遍历初始串行发布序列中的待发布服务,若待发布服务属于独立服务集合,则根据待发布服务创建发布序列,若待发布服务不属于独立服务集合,则将待发布服务添加至待发布服务的前一个待发布服务所在的发布序列中,进而根据初始串行发布序列中各个待发布服务的遍历结果得到至少一个发布序列;根据至少一个发布序列确定多个待发布服务中每个待发布服务的目标发布顺序,并基于目标发布顺序发布每个待发布服务。采用本申请,可以提高服务发布效率。

【技术实现步骤摘要】
服务发布方法及装置、服务器、存储介质
本申请涉及互联网
,尤其涉及一种服务发布方法及装置、服务器、存储介质。
技术介绍
现有的服务发布方案主要是通过人工配置服务发布顺序,由于服务之间可能存在调用关系,人工配置可能会忽略其中比较隐蔽的调用关系,使得服务发布失败,从而需要重新调整服务发布顺序,使得服务发布效率低下。此外,传统方案往往通过串行发布的方式,没有充分利用服务之间的独立性,效率不高。
技术实现思路
本申请提供一种服务发布方法及装置、服务器、存储介质,可提高服务发布效率,适用性高。第一方面,本申请提供了一种服务发布方法,包括:基于多个待发布服务之间的依赖关系生成初始有向图,并基于初始有向图确定多个待发布服务的初始串行发布序列,其中,初始有向图中的多个顶点表示多个待发布服务,初始有向图中的边表示多个待发布服务中两个待发布服务之间的依赖关系;遍历初始串行发布序列中的待发布服务,若待发布服务属于独立服务集合,则根据待发布服务创建发布序列,若待发布服务不属于独立服务集合,则将待发布服务添加至待发布服务的前一个待发布服务所在的发布序列中,进而根据初始串行发布序列中各个待发布服务的遍历结果得到至少一个发布序列,其中,独立服务集合由初始有向图中没有入边的顶点组成;根据至少一个发布序列确定多个待发布服务中每个待发布服务的目标发布顺序,并基于目标发布顺序发布每个待发布服务。结合第一方面,在一种可能的实施方式中,上述基于初始有向图确定多个待发布服务的初始串行发布序列,包括:输出初始有向图中没有入边的第一顶点,并在初始有向图中删除第一顶点以及与第一顶点相连的边,将初始有向图的删除结果确定为第一有向图;判断第一有向图中是否存在顶点,若存在,则输出第一有向图中没有入边的第二顶点,并在第一有向图中删除第二顶点以及与第二顶点相连的边,将第一有向图的删除结果确定为第一有向图;根据各个顶点的输出顺序,确定各个顶点表示的各个待发布服务的初始发布顺序,根据初始发布顺序和各个待发布服务得到初始串行发布序列。结合第一方面,在一种可能的实施方式中,上述根据至少一个发布序列确定多个待发布服务中每个待发布服务的目标发布顺序,包括:按照每个待发布服务在其所在发布序列中从小到大的序号顺序,依次获取至少一个发布序列中序号一致的至少一个待发布服务,得到至少一组待发布服务;判断每组待发布服务中的至少一个待发布服务之间是否存在依赖关系,根据每组待发布服务的判断结果确定每组待发布服务中各个待发布服务的组内发布顺序;根据每组待发布服务中各个待发布服务的组内发布顺序确定每个待发布服务的目标发布顺序。结合第一方面,在一种可能的实施方式中,上述每组待发布服务包括至少两个待发布服务;上述根据每组待发布服务的判断结果确定每组待发布服务中各个待发布服务的组内发布顺序,包括:若每组待发布服务中至少两个待发布服务之间不存在依赖关系,则确定每组待发布服务中各个待发布服务的组内发布顺序均为1。结合第一方面,在一种可能的实施方式中,上述至少一组待发布服务包括至少两组待发布服务;上述根据每组待发布服务中各个待发布服务的组内发布顺序确定每个待发布服务的目标发布顺序,包括:若至少两组待发布服务的第k组待发布服务对应的最大目标发布顺序为m,则将第k+1组待发布服务中第i个待发布服务的组内发布顺序与m之间的和,确定为第i个待发布服务的目标发布顺序,其中,k为大于或者等于1的整数,第1组待发布服务中各个待发布服务的目标发布顺序为第1组待发布服务中各个待发布服务的组内发布顺序。结合第一方面,在一种可能的实施方式中,上述基于多个待发布服务之间的依赖关系生成初始有向图之前,包括:基于预设服务依赖配置信息,确定多个待发布服务之间的依赖关系。结合第一方面,在一种可能的实施方式中,上述基于多个待发布服务之间的依赖关系生成初始有向图之前,包括:通过全链路监控系统jaeger获取调用接口时的追踪信息span;将追踪信息span传入分布式消息队到kafka中;消费分布式消息队列kafka中的每个追踪信息span,得到每个span对应的服务和父span口,以及确定父span对应的服务;根据每个span对应的服务和父span对应的服务得到每个span所代表的服务间依赖关系,服务间依赖关系包括多个待发布服务之间的依赖关系。第二方面,本申请提供了一种服务发布装置,包括:生成确定模块,用于基于多个待发布服务之间的依赖关系生成初始有向图,并基于初始有向图确定多个待发布服务的初始串行发布序列,其中,初始有向图中的多个顶点表示多个待发布服务,初始有向图中的边表示多个待发布服务中两个待发布服务之间的依赖关系;遍历模块,用于遍历初始串行发布序列中的待发布服务,若待发布服务属于独立服务集合,则根据待发布服务创建发布序列,若待发布服务不属于独立服务集合,则将待发布服务添加至待发布服务的前一个待发布服务所在的发布序列中,进而根据初始串行发布序列中各个待发布服务的遍历结果得到至少一个发布序列,其中,独立服务集合由初始有向图中没有入边的顶点组成;确定发布模块,用于根据至少一个发布序列确定多个待发布服务中每个待发布服务的目标发布顺序,并基于目标发布顺序发布每个待发布服务。结合第二方面,在一种可能的实施方式中,上述生成确定模块包括:输出删除单元,用于输出初始有向图中没有入边的第一顶点,并在初始有向图中删除第一顶点以及与第一顶点相连的边,将初始有向图的删除结果确定为第一有向图;判断单元,用于判断第一有向图中是否存在顶点,若存在,则输出第一有向图中没有入边的第二顶点,并在第一有向图中删除第二顶点以及与第二顶点相连的边,将第一有向图的删除结果确定为第一有向图;初始序列确定单元,用于根据各个顶点的输出顺序,确定各个顶点表示的各个待发布服务的初始发布顺序,根据初始发布顺序和各个待发布服务得到初始串行发布序列。结合第二方面,在一种可能的实施方式中,上述确定发布模块包括:获取单元,用于按照每个待发布服务在其所在发布序列中从小到大的序号顺序,依次获取至少一个发布序列中序号一致的至少一个待发布服务,得到至少一组待发布服务;判断确定单元,用于判断每组待发布服务中的至少一个待发布服务之间是否存在依赖关系,根据每组待发布服务的判断结果确定每组待发布服务中各个待发布服务的组内发布顺序;目标顺序确定单元,用于根据每组待发布服务中各个待发布服务的组内发布顺序确定每个待发布服务的目标发布顺序。结合第二方面,在一种可能的实施方式中,上述每组待发布服务包括至少两个待发布服务;上述判断确定单元,用于:若每组待发布服务中至少两个待发布服务之间不存在依赖关系,则确定每组待发布服务中各个待发布服务的组内发布顺序均为1。结合第二方面,在一种可能的实施方式中,上述至少一组待发布服务包括至少两组本文档来自技高网...

【技术保护点】
1.一种服务发布方法,其特征在于,包括:/n基于多个待发布服务之间的依赖关系生成初始有向图,并基于所述初始有向图确定所述多个待发布服务的初始串行发布序列,其中,所述初始有向图中的多个顶点表示所述多个待发布服务,所述初始有向图中的边表示所述多个待发布服务中两个待发布服务之间的依赖关系;/n遍历所述初始串行发布序列中的待发布服务,若所述待发布服务属于独立服务集合,则根据所述待发布服务创建发布序列,若所述待发布服务不属于所述独立服务集合,则将所述待发布服务添加至所述待发布服务的前一个待发布服务所在的发布序列中,进而根据所述初始串行发布序列中各个待发布服务的遍历结果得到至少一个发布序列,其中,所述独立服务集合由所述初始有向图中没有入边的顶点组成;/n根据所述至少一个发布序列确定所述多个待发布服务中每个待发布服务的目标发布顺序,并基于所述目标发布顺序发布所述每个待发布服务。/n

【技术特征摘要】
1.一种服务发布方法,其特征在于,包括:
基于多个待发布服务之间的依赖关系生成初始有向图,并基于所述初始有向图确定所述多个待发布服务的初始串行发布序列,其中,所述初始有向图中的多个顶点表示所述多个待发布服务,所述初始有向图中的边表示所述多个待发布服务中两个待发布服务之间的依赖关系;
遍历所述初始串行发布序列中的待发布服务,若所述待发布服务属于独立服务集合,则根据所述待发布服务创建发布序列,若所述待发布服务不属于所述独立服务集合,则将所述待发布服务添加至所述待发布服务的前一个待发布服务所在的发布序列中,进而根据所述初始串行发布序列中各个待发布服务的遍历结果得到至少一个发布序列,其中,所述独立服务集合由所述初始有向图中没有入边的顶点组成;
根据所述至少一个发布序列确定所述多个待发布服务中每个待发布服务的目标发布顺序,并基于所述目标发布顺序发布所述每个待发布服务。


2.根据权利要求1所述的方法,其特征在于,所述基于所述初始有向图确定所述多个待发布服务的初始串行发布序列,包括:
输出所述初始有向图中没有入边的第一顶点,并在所述初始有向图中删除所述第一顶点以及与所述第一顶点相连的边,将所述初始有向图的删除结果确定为第一有向图;
判断所述第一有向图中是否存在顶点,若存在,则输出所述第一有向图中没有入边的第二顶点,并在所述第一有向图中删除所述第二顶点以及与所述第二顶点相连的边,将所述第一有向图的删除结果确定为所述第一有向图;
根据各个顶点的输出顺序,确定所述各个顶点表示的各个待发布服务的初始发布顺序,根据所述初始发布顺序和所述各个待发布服务得到所述初始串行发布序列。


3.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个发布序列确定所述多个待发布服务中每个待发布服务的目标发布顺序,包括:
按照所述每个待发布服务在其所在发布序列中从小到大的序号顺序,依次获取所述至少一个发布序列中序号一致的至少一个待发布服务,得到至少一组待发布服务;
判断每组待发布服务中的至少一个待发布服务之间是否存在依赖关系,根据所述每组待发布服务的判断结果,确定所述每组待发布服务中各个待发布服务的组内发布顺序;
根据所述每组待发布服务中各个待发布服务的组内发布顺序,确定所述每个待发布服务的目标发布顺序。


4.根据权利要求3所述的方法,其特征在于,所述每组待发布服务包括至少两个待发布服务;
所述根据所述每组待发布服务的判断结果确定所述每组待发布服务中各个待发布服务的组内发布顺序,包括:
若所述每组待发布服务中至少两个待发布服务之间不存在依赖关系,则确定所述每组待发布服务中各个待发布服务的组内发布顺序均为1。


5.根据权利要求3或4所述的方法,其特征在于,所述至少一组待发布服务包括至少两组待发布服务;
所述根据所述每组待...

【专利技术属性】
技术研发人员:魏梦召
申请(专利权)人:深圳平安智汇企业信息管理有限公司
类型:发明
国别省市:广东;44

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

1