当前位置:   article > 正文

openfeign远程调用

openfeign远程调用

使用技术:nacos注册表、openfeign远程调用

一、简单远程调用,适合少量服务调用调用少量接口

1.1、创建一个被调用服务user

将服务注册到nacos注册表

依赖:注意nacos版本号与springboot版本号是否搭配,不搭配启动报错

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5. <!--nacos依赖-->
  6. <dependency>
  7. <groupId>com.alibaba.cloud</groupId>
  8. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  9. <version>2021.0.1.0</version>
  10. </dependency>
  11. <!--nacos配置文件依赖,不在nacos配置的不需要引入-->
  12. <dependency>
  13. <groupId>com.alibaba.cloud</groupId>
  14. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  15. <version>2021.0.1.0</version>
  16. </dependency>

配置文件

  1. server:
  2. port: 8080
  3. spring:
  4. application:
  5. name: user
  6. cloud:
  7. nacos:
  8. discovery:
  9. server-addr: localhost:8848 #IP地址

写请求接口代码

  1. @GetMapping("/find")
  2. public String findUser(@RequestParam String name){
  3. return name;
  4. }

1.2、创建一个open-feign-user服务远程调用user服务

添加nacos与openfeign依赖:注意nacos版本号与springboot版本号是否搭配,不搭配启动报错

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5. <!--远程调用依赖-->
  6. <dependency>
  7. <groupId>org.springframework.cloud</groupId>
  8. <artifactId>spring-cloud-starter-openfeign</artifactId>
  9. <version>3.1.5</version>
  10. </dependency>
  11. <!--nacos依赖-->
  12. <dependency>
  13. <groupId>com.alibaba.cloud</groupId>
  14. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  15. <version>2021.0.1.0</version>
  16. </dependency>
  17. <!--高版本openfeign需要添加,否则报错-->
  18. <dependency>
  19. <groupId>org.springframework.cloud</groupId>
  20. <artifactId>spring-cloud-loadbalancer</artifactId>
  21. <version>3.1.3</version>
  22. </dependency>

配置文件

  1. server:
  2. port: 8081
  3. spring:
  4. application:
  5. name: open
  6. cloud:
  7. nacos:
  8. discovery:
  9. server-addr: localhost:8848 #IP地址

启动类加注解:@EnableFeignClients

  1. @SpringBootApplication
  2. @EnableFeignClients
  3. public class OpenFeignUserApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(OpenFeignUserApplication.class, args);
  6. }
  7. }

添加调用接口:user指调注册到nacos的服务

  1. package com.example.openfeignuser.openfeign;
  2. import org.springframework.cloud.openfeign.FeignClient;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.RequestParam;
  5. @FeignClient(value = "user")
  6. public interface UserClient {
  7. /**调用user服务的findUser接口*/
  8. @GetMapping("/user/find")
  9. String findUser(@RequestParam("name") String name);
  10. }

在需要调用的类注入接口进行调用

  1. package com.example.openfeignuser.service.impl;
  2. import com.example.openfeignuser.openfeign.UserClient;
  3. import com.example.openfeignuser.service.OpenFeignService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. @Service
  7. public class OpenFeignServiceImpl implements OpenFeignService {
  8. @Autowired
  9. private UserClient userClient;
  10. @Override
  11. public String findUser(String name) {
  12. return userClient.findUser(name);
  13. }
  14. }

二、抽取便捷多服务远程调用,适合多服务调用多个接口

不存在多个服务多个接口多调用不需要

后续更新

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/84549
推荐阅读
相关标签
  

闽ICP备14008679号