Consul

发布时间:2024年01月03日

简介

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

提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。

它具有很多优点。包括:基于raft协议,比较简洁;支持健康检查,同时支持HTTP和DNS协议支持跨数据中心的WAN集群提供图形界面跨平台,支持Linux、Mac、Windows。

作用:

  • 服务发现 - 提供HTTP和DNS两种发现方式。
  • 健康监测 - 支持多种方式,
  • HTTP、TCP、Docker、Shell脚本定制化
  • KV存储 - Key、Value的存储方式 多数据中心
  • Consul支持多数据中心 可视化Web界面

安装

docker pull consul:1.15.4

docker run -d -p 8500:8500 --restart=always --name=consul consul:1.15.4 agent -server -bootstrap -ui -node=1 -client=‘0.0.0.0’

agent: 表示启动 Agent 进程。

server:表示启动 Consul Server 模式

client:表示启动 Consul Cilent 模式。

bootstrap:表示这个节点是 Server-Leader ,每个数据中心只能运行一台服务器。技术角度上讲 Leader 是通过 Raft 算法选举的,但是集群第一次启动时需要一个引导 Leader,在引导群集后,建议不要使用此标志。

ui:表示启动 Web UI 管理器,默认开放端口 8500,所以上面使用 Docker 命令把 8500 端口对外开放。

node:节点的名称,集群中必须是唯一的,默认是该节点的主机名。

client:consul服务侦听地址,这个地址提供HTTPDNSRPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0

join:表示加入到某一个集群中去。 如:-json=192.168.0.11

运行后访问http://localhost:8500/ 进入到consul管理界面则说明安装成功。

在这里插入图片描述

springcloud注册到Consul注册中心

导入依赖

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
 </dependency>

配置application.yml文件:

server:
  port: 8006
spring:
  application:
    name: cloud-provider-payment

  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}
        heartbeat:
          enabled: true

在启动类加入@EnableDiscoveryClient注解

启动成功后,可以在管理界面中查找到相关的服务。
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_44866921/article/details/135372059
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。