在微服务架构下,服务之间的关系是非常复杂的,是一个典型的有向有环图,在一个中等规模的项目中,一般会有100多个服务,而大型项目中,则会有数百个服务。
假设我们有如下6个服务:
每个服务都指定了自己依赖的服务:
AaaSvc:
BbbSvc:
CccSvc:
DddSvc:
EeeSvc:
FffSvc:
我们如何把如上6个服务中跟服务AaaSvc相关的服务可视化呢?如下图所示:
要完成这样的服务关联图,需要如下几个步骤:
1、遍历指定项目下的所有服务,构造两个map,serviceToServiceMap 和 reverseServiceToServiceMap,存储所有服务的直接依赖和反向直接依赖。