SpringCloud系列(19)--将服务消费者Consumer注册进Consul

前言:在上一章节中我们把服务提供者Provider注册进了Consul,而本章节则是关于如何将服务消费者Consumer注册进Consul

1、再次创建一个服务提供者模块,命名为consumerconsul-order80
(1)在父工程下新建模块

(2)选择模块的项目类型为Maven并选择模块要使用的JDK版本
(3)填写子模块的名称,然后点完成即可完成创建

效果图:

(4)修改consumerconsul-order80子模块的pom.xml文件,然后reolad一下,下载依赖

例:

<?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>springcloud01</artifactId>
        <groupId>com.ken.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>consumerconsul-order80</artifactId>

    <dependencies>
        <!--以下依赖都没写版本号,没写版本号的情况下会引用父项目的版本-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--监控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <!--lombok插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入自己定义的api调用包,可以使用Payment模块的entity-->
        <dependency>
            <groupId>com.ken.springcloud</groupId>
            <artifactId>api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <!--SpringCloud consul server-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
    </dependencies>

</project>

2、为子模块添加名为application的yml配置文件(注:yml是官方推荐的配置文件格式,最好使用yml文件而不是properties文件)

效果图:

3、修改application.yml文件配置
#服务端口号
server:
  port: 80

#服务名称
spring:
  application:
    name: consul-consumer-order
  #consul注册中心地址
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}
4、为consumerzk-order80子模块新建一个主启动类,类名输入com.ken.springcloud.OrderMain8004,然后创建即可

 效果图:

5、为consumerzk-order80子模块新建一个主启动类,类名输入com.ken.springcloud.OrderConsulMain80,然后创建即可

效果图:

6、编写consumerconsul-order80子模块的主启动类
package com.ken.springcloud;

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

@SpringBootApplication
//该注解用于向使用consul或zookeeper作为注册中心时注册服务
@EnableDiscoveryClient
public class OrderConsulMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderConsulMain80.class,args);
    }
}
7、在com.ken.springcloud包下新建config包和ApplicationContextConfig类,在类名输入config.ApplicationContextConfig,然后创建即可

效果图:

8、编写ApplicationContextConfig类的内容
package com.ken.springcloud.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ApplicationContextConfig {

    /**
     * RestTemplate提供了多种便捷访问远程Http服务的方法,是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集
     */
    @Bean
    //@LoadBalanced注解赋予RestTemplate负载均衡的能力
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

}

9、在com.ken.springcloud包下新建controller包和OrderZkController控制类,在类名输入controller.OrderConsulController,然后创建即可

效果图:

10、编写OrderZkController控制类的内容 
package com.ken.springcloud.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;

@RestController
@Slf4j
public class OrderConsulController {

    public static final String INVOKE_URL = "http://consul-provider-payment";

    @Resource
    private RestTemplate restTemplate;

    @GetMapping("/consumer/payment/consul")
    public String paymentInfo() {
        String result = restTemplate.getForObject(INVOKE_URL + "/payment/consul",String.class);
        return result;
    }

}

11、启动consumerconsul-order80子模块 

效果图: 

12、刷新Consul可视化页面

发现consumerconsul-order80子模块已经注册进了Consul里面

13、请求接口查看服务是否正常运行 

在地址栏输入http://localhost/consumer/payment/consul并回车调用接口,可以看到数据返回成功

相关推荐

最近更新

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

    2024-04-28 11:10:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 11:10:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 11:10:03       82 阅读
  4. Python语言-面向对象

    2024-04-28 11:10:03       91 阅读

热门阅读

  1. C# 读去Word文档(NPOI)

    2024-04-28 11:10:03       32 阅读
  2. python——openpyxl库

    2024-04-28 11:10:03       33 阅读
  3. SpringCloud面试题——Sentinel

    2024-04-28 11:10:03       32 阅读
  4. casa学习代码记录

    2024-04-28 11:10:03       84 阅读
  5. Linux安装python3环境

    2024-04-28 11:10:03       100 阅读
  6. 备忘录模式

    2024-04-28 11:10:03       33 阅读
  7. 备忘录模式:捕获和恢复对象的内部状态

    2024-04-28 11:10:03       35 阅读
  8. 选择技术栈的关键因素与实践指南

    2024-04-28 11:10:03       32 阅读
  9. 自然语言处理的发展及归纳介绍

    2024-04-28 11:10:03       34 阅读
  10. 【ARMv9 DSU-120 系列 1 -- DSU-120 DynamIQ 概述】

    2024-04-28 11:10:03       34 阅读
  11. Python重点数据结构基本用法

    2024-04-28 11:10:03       28 阅读
  12. C++下跨平台websocket库及使用示例

    2024-04-28 11:10:03       33 阅读
  13. 霍兰德测试助你明确高考专业方向,不再迷茫!

    2024-04-28 11:10:03       35 阅读