若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)

模块之间的关系

我们可以了解到一共有这么多服务,我们先启动这三个服务

若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第1张图片

其中rouyi–api模块是远程调用也就是提取出来的openfeign的接口
ruoyi–commom是通用工具模块
其他几个都是独立的服务

若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第2张图片

ruoyi-api模块

api模块当中有几个提取出来的OpenFeign的接口
分别为文件,日志,用户服务
若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第3张图片

我们以RemoteUserService接口为例子:其中contextId = "remoteUserService"为bean的名称,
value = ServiceNameConstants.SYSTEM_SERVICE为接口的描述,
fallbackFactory = RemoteUserFallbackFactory.class调用失败时候的降级策略,一般会打印返回错误日志信息

若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第4张图片
若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第5张图片
若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第6张图片

接下来查看接口提供方和调用方

提供方
若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第7张图片
调用方
若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第8张图片

我们注意这几个地方。通过自定义注解@innerAuth+AOP来拒绝外部请求

若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第9张图片
若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第10张图片
若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第11张图片
若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第12张图片

切面逻辑

若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第13张图片
但是这依然存在一个问题,就是我们可以用postman之类的工具,配置一个请求头携带参数
from-source:inner 从而来在外部直接访问内部服务。若依在网关这里通过过滤器将外部请求做了一次处理,清楚的携带这个参数的可能

若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第14张图片

还有一点就是不同服务间的调用需要携带一些参数,若依通过拦截器来进行相关的设置

若依框架解读(微服务版)——2.模块间的调用逻辑(ruoyi-api模块)(OpenFeign)(@innerAuth)_第15张图片

你可能感兴趣的:(开源项目学习,微服务,分布式,spring,cloud)