Web spi service 三层的关系和Ereuka 注册中心的关系

web 层是控制器层,主要的作用的是做交互

spi 准确来说不算一层,它是Web跟Service 通信的协议的约定,是service 接口的定义和规定。即对service 的名字,入参,出参,异常处理等的定义和规定。

service 层是业务处理层,主要作用的是对数据的操作,接口的具体实现。

web 层和service 层之间的通信具体是借助spi,即已经定义好的约定进行通信。

 

Web spi service 三层的关系和Ereuka 注册中心的关系_第1张图片

如图所示,web层通过Spi 定位到Service层地址,通过暴露的接口拿到具体实现方法的地址Map到对应的方法上。

对于Service ,需要将服务注册上Ereuka 注册中心,(在启动类上加EnableDiscoveryClient,通过暴露接口的方式让接口被Ereuka注册中心发现并注册)Service 和Spi 的联系是RequestMapping, Spi 通过RequestMapping 连接到Service的具体实现方法上,同时也定义了方法的入参出参命名等格式。

对于Web,client 方法上的@FeignClient(name="xxxx") 其中的xxxx就是具体实现的Service在Ereuka注册中心上的名字,也就是Web通过这个name 在Ereuka注册中心找到Service 的IP。即让Web 通过@FeignClient 可以到注册中心找到Service 部署的服务器地址,再根据IP地址下的RequestMapping 找到具体方法的实现。

 

Ereuka在Service工程默认是不开启的,即本地跑的方法不会实时地注册上去,其实也不难理解,如果每个开发人员每跑一次本地工程都注册上去,注册中心不就乱套了。因此只有开启配置才会注册上去。相应地如果你的工程中含有远程配置文件,每次本地跑项目都要去到远程配置文件中心拿到配置文件,那就需要配置一个路由,将配置文件中的远程配置引导导本地。

你可能感兴趣的:(微服务)