Consul实现服务与发现

Consul简介

Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司Go语言开发。

优点:基于raft协议,比较简洁;支持健康检查,同时支持HTTP和DNS协议,支持跨数据中心的WAN集群,提供图形界面,跨平台。

Consul下载地址:https://www.consul.io/downloads.html

Consul环境搭建

启动consul命令:consul agent -dev -ui -node=cy

-dev开发服务器模式启动,-node节点名为cy,-ui可以用界面访问,默认能访问。

测试访问地址:http://localhost:8500

Consul实现服务注册与发现

pom文件

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
  </parent>
  
  <!-- 管理依赖 -->
  <dependencyManagement>
      <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.M7</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
      </dependencies>
  </dependencyManagement>
  
  <dependencies>
      <!-- SpringBoot整合Web组件 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- SpringCloud consul-server -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-discovery</artifactId>
    </dependency>
  </dependencies>
  
  <!-- 注意:这里必须要添加,否则各种依赖有问题 -->
  <repositories>
      <repository>
          <id>spring-milestones</id>
          <name>Spring Milestones</name>
          <url>https://repo.spring.io/libs-milestone</url>
          <snapshots>
              <enabled>false</enabled>
          </snapshots>
      </repository>
  </repositories>

配置文件application.yml

###服务端口号
server:
  port: 8503
###服务名称
spring:
  application:
    name: consul-member 
###consul注册中心地址
  cloud:
    consul:
      ###consul地址
      host: localhost
      ###consul端口号
      port: 8500
      discovery:
        ###服务地址直接为ip地址
        hostname: 192.168.48.1 

主类

@RestController
@SpringBootApplication
@EnableDiscoveryClient
public class ConsulMemberController {
    public static void main(String[] args) {
        SpringApplication.run(ConsulMemberController.class, args);
    }
}

原文地址:https://www.cnblogs.com/tripleDemo/p/11259320.html