首页 > 其他分享 >OpenFeign 服务调用与负载

OpenFeign 服务调用与负载

时间:2024-08-15 17:30:53浏览次数:10  
标签:负载 调用 OpenFeign spring nacos class test public cloud

需要建两个工程,一个是服务提供者,一个是服务调用者

服务提供者

一个普通的 nacos 服务,增加一个 controller 方法即可,上一篇文章刚说了,这里简单说下

<!-- 服务提供者不调用其他服务,所以只需要注册到 nacos 的依赖 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

配置文件

server:
  port: 8081

spring:
  application:
    name: my-provider-test
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # Nacos服务注册中心地址

代码

// 启动类
@EnableDiscoveryClient
@SpringBootApplication
public class SpringbootApplication {
   public static void main(String[] args) {
           SpringApplication.run(SpringbootApplication.class,args);
       }

}

// controller
@RestController
public class TestController {

    @GetMapping("/test")
    public String testGetConfig(){
        return "test";
    }
}

服务消费者

pom 依赖

<!-- 服务调用,底层需要 loadbalancer 做负载 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

<!-- 服务注册 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

配置文件

server:
  port: 8082

spring:
  application:
    name: my-consumer-test
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # Nacos服务注册中心地址

代码

// 一个 Feign 接口,value 是服务名称
@FeignClient(value = "my-provider-test")
public interface TestFeign {

    // 这个方法要和服务提供者那里保持一致
    @GetMapping("/test")
    String test();

}

// controller
@RestController
public class Controller {

    @Resource
    private TestFeign testFeign;

    @GetMapping("/test")
    public String testFeign(){
        return testFeign.test();
    }

}

// 启动类
@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients // 开启 Feign
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

启动服务,nacos 能看到这俩服务

调用接口测试

生产中一般不会不是这样,通常服务提供者也是消费者,一般 controlle 继承 Feign 接口,@RequestMapping、@RequestBody 等这些注解也能继承,所以 Feign 中既定义了 Feign 也定义了接口,如果接入 swagger,swagger 以 controller 来构建 dock,这样代码就会清爽很多

标签:负载,调用,OpenFeign,spring,nacos,class,test,public,cloud
From: https://www.cnblogs.com/cyrushuang/p/18297225

相关文章

  • OpenFeign 服务注册和调用原理
    Feign注册到容器和springboot自动配置原理类似,在springboot启动时会扫描到EnableFeignClients注解,这个注解导入了一个FeignClientsRegistrar类@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Import(FeignClientsRegistrar.class)publi......
  • OpenFeign 使用细节
    @EnableFeignClients注解配置项@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE})@Documented@Import({FeignClientsRegistrar.class})public@interfaceEnableFeignClients{//和basePackages互为别名String[]value()default{};//......
  • 线程池使用场景 调用多个微服务汇总数据
    importlombok.SneakyThrows;importjava.text.SimpleDateFormat;importjava.util.concurrent.*;publicclassT{@SneakyThrowspublicstaticvoidmain(String[]args){shopping_threadPool();}/*汇总数据使用线程池+Future耗时≈所有......
  • 易优Tag调用-Eyoucms标签手册
    【基础用法】名称:tag功能:TAG调用语法:{eyou:tagsort='now'getall='0'row='100'}<ahref='{$field.link}'>{$field.tag}</a>{/eyou:tag}参数:aid=''文档ID,在内容页可以不设置该属性typeid=''栏目ID,调取某个栏目下的全部TAG......
  • 易优Ad单条广告调用-Eyoucms标签手册
    [基础用法]名称:ad功能:获取单条广告数据语法:{eyou:adaid='广告ID'}<ahref='{$field.links}'{$field.target}><imgalt='{$field.title}'src='{$field.litpic}'/></a>{/eyou:ad}参数:aid=''指定广告IDid='&......
  • 点击识别按钮调用后端接口,中途按下结束识别,但是识别还是进行啦js
    在JavaScript中,如果你想要在点击按钮后调用一个接口,并且在这个过程中按下一个按钮来中断或取消这个请求,你可以使用fetchAPI来发起请求,并使用AbortController来取消这个请求。以下是一个简单的例子://获取按钮元素conststartButton=document.getElementById('startButton');......
  • 身份证OCR识别接口如何用Java调用
    一、什么是身份证OCR识别接口?身份证OCR识别接口又叫身份证识别,身份证图像识别,身份证文字识别,即自动识别和提取身份证上的文字和数字信息。它可以通过图像处理和模式识别算法,将身份证中的姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限等关键信息准确地提取......
  • Python代码调用扣子平台大模型,结合wxauto优秀开源项目实现微信自动回复好友消息
    最近看到微信自动化回复,觉得很有意思,想接通大模型,自动回复好友消息。以下文章将对代码进行详细解释,文章末尾附源码1.在抖音扣子平台创建发布一个大模型智能问答助手,获取API-key等。在扣子平台有详细文档。2.wxauto安装。pipinstallwxauto项目地址是​​​​​​cluic/wxau......
  • 笔记本电脑本地部署ollama大模型(显存不足调用CUDA Unified Memory方法)
    软硬件:win11,NVIDIAGeForceRTX3050显存4g一.ollama模型最低要求1.Llama3.1(8B)模型GPU:至少需要1张具有16GB显存的GPU(例如NVIDIATeslaV100或A100)。CPU:高性能的多核处理器(例如IntelXeon或AMDRyzen)。内存:最少32GB的系统内存。存储:需要大约......
  • nginx的功能?部署前端代码的步骤?负载均衡的功能,说一下。
    nginx的功能?部署前端代码的步骤?负载均衡的功能,说一下。使用Nginx部署前端项目的详细步骤作者:rousong2024.01.2920:50浏览量:423使用Nginx部署前端项目的详细步骤(baidu.com)简介:本文将介绍使用Nginx部署前端项目的详细步骤,包括下载和安装Nginx、配置Nginx、部署前端项目等。......