一、consul 服务注册中心

官网地址:https://www.consul.io/

Consul 是 HashiCorp 公司推出的开源产品,用于实现分布式系统的服务发现、服务隔离、服务配置,这些功能中的每一个都可以根据需要单独使用,也可以同时使用所有功能。Consul 官网目前主要推 Consul 在服务网格中的使用。

与其它分布式服务注册与发现的方案相比,Consul 的方案更“一站式”——内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具。Consul 本身使用 go 语言开发,具有跨平台、运行高效等特点,也非常方便和 Docker 配合使用。

1、下载安装

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

在指定目录解压缩 注意:不建议目录含义中文

2、使用

2.1、在当前目录打开cmd窗口

consul agent -dev		# 以开发模式启动(测试使用)
consul agent -service 	# 以服务器的模式启动(需要集群)

2.2、访问 consul 管理页面

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

image-20220114143210746

2.3、管理界面的基本介绍

dc1:数据中心名称(datacenter 默认:dc1)

# 启动时自定义数据中心名称
consul agent -dev -client=0.0.0.0 --datacenter=yanchi 

在这里插入图片描述

services:当前consul服务中注册服务列表(默认启动会注册自己)

nodes:consul 的集群节点

二、consul 客户端(Java)

2.1、引入依赖

<!-- 引入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-actuator</artifactId>
</dependency>

2.2、编写application.yml配置

server:
  # 启动端口号
  port: 8082
spring:
  application:
    # 服务名称
    name: CONSULCLIENT
  cloud:
    consul:
      # consul注册中心地址
      host: localhost
      # consul注册中心端口
      port: 8500
      discovery:
        # 执行注册当前服务的服务名称  默认:${spring.application.name}
        service-name: ${spring.application.name}
        # 注册时是否使用本机ip注册(不配置就是主机名)
        prefer-ip-address: true

2.3、在入口类加上注解

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

2.4、启动服务,查看注册中心

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐