nacos+feign实现微服务调用


NACOS+Feign实现微服务调用

因最近接触到新的项目,发现好多知识自己并没有接触过,因此自己创建一番,学习一下。

NACOS

我们常用且熟悉的配置中心基本是zookeeper等,nacos简而言之也是一个配置中心,同时提供服务发现、服务管理的功能。

Feign

feign是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service,我们可以直接使用其服务。

springCloud+nacos+feign实现微服务调用

  1. 首先准备两个服务,一个provide、一个consumer。
    相关依赖版本
    <spring-boot.version>2.2.8.RELEASE</spring-boot.version> <spring-cloud.version>2.2.2.RELEASE</spring-cloud.version> <spring-nacos.version>2.2.1.RELEASE</spring-nacos.version>

    • consumer配置
      spring: application: name: nacos-cloud-provide cloud: nacos: discovery: server-addr: 127.0.0.1:8848
      启动类需添加@EnableDiscoveryClient@EnableFeignClients注解。
      定义feign接口:
      @FeignClient(value = "nacos-cloud-provide",url = "127.0.0.1:8081") public interface FeignNacosCloudProvide { /** * get * @return */ @GetMapping(value = "/service") public String get(); }
      实现类:
      `
      @Slf4j
      @RestController
      public class FeignNacosCloudProvideImpl implements FeignNacosCloudProvide {

    @Override
    public String get() {
    log.info("--------进入生产者方法体--------");
    return "hahahaha";
    }
    }
    `

    • provide配置

      server.port=8082 spring.application.name=nacos-cloud-consumer spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

      启动类增加注解 @EnableDiscoveryClient@EnableFeignClients(basePackages = "com.example.nacoscloudprovide.client")

      basePackages指定调用的feign接口包名。

      service层直接调用:

      `
      @Service
      @Slf4j
      public class FeignNacosServiceImpl implements FeignNacosService {

      @Autowired
      private FeignNacosCloudProvide feignNacosCloudProvide;
      
      @Override
      public String getOne(String one) {
          log.info("------开始调用生产者服务------"+one);
          return feignNacosCloudProvide.get();
      }
      

      }
      `


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM