springcloud中使用Consul作为服务注册中心

介绍

 Consul是一个服务管理软件。支持多数据中心下,分布式高可用的,服务发现和配置共享。

 Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现。

安装Consul

下载Consul

 由于我目前的电脑没有虚拟机,所以这里就已windows系统为例
官网下载地址:Consul下载地址

image.png

windows的安装包下载完毕解压后就是一个consul.exe文件。

启动Consul

 在consul.exe所在的目录内通过cmd运行如下命令:

consul agent -dev

 在浏览器中访问: http://localhost:8500/

image.png

注册服务到Consul

 在我的上一篇文章中是通过Eureka作为微服务注册中心。这里也在上一篇文章编写的代码下搭建。

创建一个module项目

image.png

 创建完毕后在父工程的pom文件中,查看是否由如下代码:

<modules>
        <module>demo-eureka-server</module>
        <module>demo-eureka-client</module>
        <module>demo-consul-client</module>
    </modules>

 如果没有 demo-consul-client,需要自己手动添加。

修改pom文件

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

    <artifactId>demo-consul-client</artifactId>


    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!-- consul-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
        <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-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

创建启动类

image.png

代码如下:

package com.springboot3.springcloud;

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

/**
 * @author 陈威龙
 * @date 2020/6/8
 **/
@SpringBootApplication
@EnableDiscoveryClient
public class OrderConsulMain80 {

    public static void main(String[] args) {
        SpringApplication.run(OrderConsulMain80.class,args);
    }
}

 @EnableDiscoveryClient:这里的注解和Eureka服务标注的不一样了

创建application.yml配置文件

server:
  port: 80
spring:
  application:
    name: demo-consul-client
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.cloud.consul.host}


启动服务并在浏览器中查看

image.png

image.png

如图显示已经完成注册

示例代码

https://gitee.com/cwljxf/springcloud-demo

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×