# Nacos 服务发现-快速入门-创建服务消费者模块,使用 feign 调用 服务生产者

Nacos 服务发现-快速入门-创建服务消费者模块,使用 feign 调用 服务生产者

1、 新增 quickstart_consumer 子工程(子模块),

创建子模块:

--> 右键 nacos_discovery 父工程
--> Modules 
--> Maven 
--> Groupld : ( djh.it )
	Artifactld : ( quickstart_consumer )
	Version : 1.0-SNAPSHOT
--> Next 
--> Module name: ( service1 )
	Content root : ( C:\java-test\idea2019\nacos_discovery\quickstart_consumer )
	Module file location: ( C:\java-test\idea2019\nacos_discovery\quickstart_consumer )
--> Finish

2、 在 服务消费者模块 quickstart_consumer 子工程中 的 pom.xml 文件中加入依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>nacos_discovery</artifactId>
        <groupId>djh.it</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>quickstart_consumer</artifactId>

    <dependencies>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <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>

    </dependencies>

</project>

<!-- C:\java-test\idea2019\nacos_discovery\quickstart_consumer\pom.xml -->

3、 在 服务消费者模块 quickstart_consumer 子工程中,创建 配置文件 application.yml

## C:\java-test\idea2019\nacos_discovery\quickstart_consumer\src\main\resources\application.yml

server:
  port: 56020  # 启动端口 命令行注入

spring:
  application:
    name: quickstart-consumer  #spring应用名, # 注意 FeignClient 不支持名字带下划线,即不支持 quickstart_consumer
  cloud:
    nacos:
      # config:  # 表示配置管理
      discovery:  # 表示服务发现
        server-addr: 127.0.0.1:8848  # nacos服务器地址
        # namespace: b75c342f-8aeb-4f5a-a1d3-21f0738d7960  # dev开发环境(nacos-1.1.3)

4、 在 服务消费者模块 quickstart_consumer 子工程中,创建 FeignClient 客户端 ProviderClient.java

/**
 *  C:\java-test\idea2019\nacos_discovery\quickstart_consumer\src\main\java\djh\it\nacos\client\ProviderClient.java
 *
 *  2024-4-12 创建 FeignClient 客户端 ProviderClient.java
 */
package djh.it.nacos.client;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

// # 注意 FeignClient 不支持名字带下划线,即不支持 quickstart_provider
// @FeignClient(value = "quickstart_provider")  // error, 会报错
@FeignClient(value = "quickstart-provider")     // successful
public interface ProviderClient {

    @GetMapping("/service")
    public String service();
}

5、 在 服务消费者模块 quickstart_consumer 子工程中,编写 Controller
创建 ConsumerController.java 类。

/**
 *  C:\java-test\idea2019\nacos_discovery\quickstart_consumer\src\main\java\djh\it\nacos\controller\ConsumerController.java
 *
 *  2024-4-12 服务消费者 consumer Controller
 */

package djh.it.nacos.controller;


import djh.it.nacos.client.ProviderClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ConsumerController {

	@Autowired  //注入动态代理对象,内部远程调用服务生产者
    ProviderClient providerClient;

    @GetMapping("/service")
    public String service(){
        
		//远程调用
		String providerResult = providerClient.service();
		
        return "consumer invoke" + " | " + providerResult;
    }
}

6 、在 服务消费者模块 quickstart_consumer 子工程中,创建启动类 NacosConsumerApp.java。

/**
 *  C:\java-test\idea2019\nacos_discovery\quickstart_consumer\src\main\java\djh\it\nacos\NacosConsumerApp.java
 *
 *  2024-4-12 服务消费者 启动类 NacosConsumerApp.java
 */

package djh.it.nacos;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableDiscoveryClient  //引入服务发现客户端
@EnableFeignClients  //引入远程调用客户端
public class NacosConsumerApp {
    public static void main(String[] args) {
        SpringApplication.run(NacosConsumerApp.class, args);
    }
}


7 、启动 nacos 服务 和 服务提供者 启动类 NacosProviderApp.java
服务消费者 启动类 NacosConsumerApp.java

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

8 、浏览器地址栏输入:http://127.0.0.1:8848/nacos/
点击 【服务管理】–> 【服务列表】
会发现如下界面:
在这里插入图片描述

9、 浏览器地址栏输入:http://127.0.0.1:56020/service
输出: consumer invoke | provider invoke
成功调用了生产者地址。

在这里插入图片描述

关联【Nacos 服务发现–快速入门–服务生产者模块相关代码】请点击如下:
Nacos 服务发现–快速入门–服务生产者模块相关代码

相关推荐

  1. 使用Nacos实现服务发现

    2024-04-14 17:40:03       54 阅读
  2. 服务调用Ribbon,LoadBalance,Feign

    2024-04-14 17:40:03       50 阅读
  3. 服务之间Feign调用

    2024-04-14 17:40:03       28 阅读
  4. 使用Feign简化Spring Boot微服务间的调用

    2024-04-14 17:40:03       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 17:40:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 17:40:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 17:40:03       87 阅读
  4. Python语言-面向对象

    2024-04-14 17:40:03       96 阅读

热门阅读

  1. 负载均衡原理及算法

    2024-04-14 17:40:03       35 阅读
  2. HTML的文档说明

    2024-04-14 17:40:03       36 阅读
  3. Android CardView层级之上的View无法显示

    2024-04-14 17:40:03       31 阅读
  4. jvm运行情况预估

    2024-04-14 17:40:03       38 阅读
  5. 【数据结构】红黑树

    2024-04-14 17:40:03       36 阅读
  6. Linux上如何修改MySQL配置文件

    2024-04-14 17:40:03       84 阅读
  7. FFmpeg: 自实现ijkplayer播放器-02环境搭建

    2024-04-14 17:40:03       41 阅读
  8. js 字符串常用的方法

    2024-04-14 17:40:03       36 阅读
  9. LC 45.跳跃游戏II

    2024-04-14 17:40:03       31 阅读
  10. paddle测试安装之再入深坑

    2024-04-14 17:40:03       42 阅读