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