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

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

时间:2024-01-22 18:11:52浏览次数:19  
标签:调用 服务 OpenFeign ruoyi 接口 api 模块

模块之间的关系
我们可以了解到一共有这么多服务,我们先启动这三个服务

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


ruoyi-api模块
api模块当中有几个提取出来的OpenFeign的接口
分别为文件,日志,用户服务

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

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

提供方

调用方

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

切面逻辑


但是这依然存在一个问题,就是我们可以用postman之类的工具,配置一个请求头携带参数
from-source:inner 从而来在外部直接访问内部服务。若依在网关这里通过过滤器将外部请求做了一次处理,清楚的携带这个参数的可能

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

完结撒花!!!

标签:调用,服务,OpenFeign,ruoyi,接口,api,模块
From: https://www.cnblogs.com/kisshappyboy/p/17980673

相关文章

  • BOSHIDA DC电源模块的特点及应用案例分享
    BOSHIDADC电源模块的特点及应用案例分享DC电源模块是一种可以将交流电转换为直流电的设备,具有以下特点: 1.高效稳定:DC电源模块采用高效稳定的电源转换技术,可以将输入的交流电转换为输出的稳定直流电,并且具有高效能的转换效率。2.多功能性:DC电源模块通常具有多种输出电压和电......
  • 【解决方案】如何使用 Http API 代替 OpenFeign 进行远程服务调用
    目录前言一、何为OpenFeign1.1@FeignClient注解1.2注意事项二、常见的HttpAPI2.1Apache2.2Okhttp2.3Hutool三、RestTemplate3.1详解.execute()四、文章小结前言看到标题大家可能会有点疑惑吧:OpenFeign不是挺好用的吗?尤其是微服务之间的远程调用,平时用的也挺习惯的,为啥要替换呢......
  • 基于ESP32C3与RS485模块实现Modbus通讯
    参考网页:https://lingshunlab.com/book/esp32/esp32-use-rs485-model-to-modbus-by-library-emodbushttps://www.elecfans.com/d/2040842.htmlMODBUS是一种广泛使用的工业通信协议,它允许通过串行线路在不同设备之间进行通信和数据交换。RS485模块是一个在ESP32上实现MODBUS协......
  • Unity3D 游戏服务端哪些模块可以做成无状态详解
    Unity3D游戏服务端是指在使用Unity3D引擎开发的游戏中,负责处理与游戏客户端的通信以及游戏逻辑的服务器端。在设计游戏服务端时,有一种常见的设计模式叫做无状态模式。本文将详细介绍Unity3D游戏服务端哪些模块可以做成无状态,并给出技术详解和代码实现。对啦!这里有个游戏开发交流......
  • python3使用socket模块实现简易syslog服务器
    废话不多说直接上代码1importsocket2importtime345defsocket_bind(server_socket,host,port=514,max_retries=5):6retries=07whileretries<max_retries:8try:9server_socket.bind((host,port))10......
  • 模块,包,库,框架的使用
    一、模块Module 模块是一个变量、数组、函数和类的集合。另外,模块是一种以.py为后缀的文件,用于表示程序的一部分,模块的名称是该.py文件的名称。模块的名称**作为一个全局变量__name__**的取值可以被其他模块获取或导入。 模块的导入通过ipmort来实现,导入模块的方式如下: i......
  • 无涯教程-Node.js - Web模块
    Web服务器是一个软件应用程序,它处理HTTP客户端(例如Web浏览器)发送的HTTP请求,并返回网页以响应客户端,Web服务器通常提供html文档以及图像,样式表和脚本。Web应用架构Web应用程序通常分为四层-Client         -该层由Web浏览器,移动浏览器或可以向Web服务器......
  • 汇编-创建多模块程序
     大型源文件难于管理且汇编速度慢。可以把单个文件拆分为多个包含文件,但是,对其中任何源文件的修改仍需对所有的文件进行整体汇编。更好的方法是把一个程序划分为模块(module)(汇编单位)。每个模块可以单独汇编,因此,对一个模块源代码的修改就只需要重新汇编该模块。链接器将所......
  • springboot多模块项目(微服务项目)正确打包(jar)方式
    大致步骤新建一个springboot项目名称为父亲添加父快捷方式。新建子模块,子模块同时插入新建springboot的项目,依次创建enty和web模块(关键是并配置好pom文件)web模块依赖于entiy模块中的实体类,创建测试控制器,先测试项目没问题再开始打包(jar)开始打包测试jar是否有用创建项目注意点:子模......
  • 对esm模块import理解
    //模块a.jsexportleta=1;exportfunctionaddA(){a++;}//index.jsimpot{a,addA}from'./a.js';console.log('a=',a);//1addA();console.log('a=',a);//2//other.jsimpot{a,addA}from'./a.js'......