feign整合nacos


创建两个项目,服务提供者service-offer和服务消费者service-consumer

一、service-offer的pom文件

     <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>

启动类上添加两个注解 @EnableDiscoveryClient @EnableFeignClients

yml配置

server:
  port: 8183
spring:
  application:
    name: service-offer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

 

提供一个API

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(){
        return "hello world";
    }
}

服务提供者完成

二、创建服务消费者

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.5.RELEASE</version>
            <!--    排除nacos中的ribbon依赖,否则会报错        -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-loadbalancer</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

启动类:添加注解

@EnableDiscoveryClient
@EnableFeignClients

yml配置

spring:
  application:
    name: service-consumer
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
server:
  port: 8184

创建feign接口

@FeignClient("service-offer")//填写配置的server name
public interface ProvideClient {
    @RequestMapping("/hello")
    String hello();
}

并调用该接口

@RestController
public class HelloController {
    @Autowired
    private ProvideClient provideClient;
    @RequestMapping("/helloWorld")
    public String hello(){
        return provideClient.hello();
    }
}

调用成功,访问http://localhost:8848/nacos/index.html,用户名密码都是nacos,登录可查看服务状态

访问http://localhost:8184/helloWorld,访问成功

 


免责声明!

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



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