【超详细】Consul的安装的使用附多环境配置(傻瓜式教程)

article/2025/9/20 15:09:10

一、Consul概述

        Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等)。使用起来也较 为简单。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。

二、Consul功能

三、Consul角色

   Service:

        服务端,保存配置信息,高可用集群,在局域网与本地客户端通讯,通过广域网与其他数据中心通讯,每个数据中心的Server数量推荐3个或者5个。

   Client:

        客户端,无状态,HTTPDNS接口请求转发给局域网内的服务端集群。

四、使用Consul的优势 

  • 使用 Raft 算法来保证一致性, Consul 保持了 CAP 中的 CP,保持了强一致性和分区容错性。
  • 支持多数据中心。
  • 支持健康检查。
  • 使用go语言开发,启动速度和运行速度快。

五、Consul的安装和使用 

        打开Consul官网 https://www.consul.io/ 根据不同的操作系统选择最新的 Consul 版本,我们这里以 Windows 64 操作系统为例,可以看出 Consul 目前的最新版本为  1.13.1

下载下来是一个压缩包,解压之后是一个consul.exe文件

然后在exe文件所在的目录cmd进入命令行,输入如下执行启动consul

 consul agent -dev 

 成功之后如图

启动成功之后访问:localhost:8500,就可以看到Consul的管理界面

Consul 的 Web 管理界面有一些菜单,我们这里做一下简单的介绍:

        Services,管理界面的默认页面,用来展示注册到 Consul 的服务,启动后默认会有一个 consul 服务,也就是它本身。

        Nodes,在 Services 界面双击服务名就会来到 Services 对于的 Nodes 界面,Services 是按照服务的抽象来展示的,Nodes 展示的是此服务的具体节点信息。比如启动了两个订单服务实例,Services 界面会出现一个订单服务,Nodes 界面会展示两个订单服务的节点。

        Key/Value ,如果有用到 Key/Value 存储,可以在界面进行配置、查询。

        ACL,全称 Access Control List,为访问控制列表的展示信息。

        Intentions,可以在页面配置请求权限。

        此时,我们的consul就安装成功了

六、Consul的调用流程

  1、当 Producer 启动的时候,会向 Consul 发送一个 post 请求,告诉 Consul 自己的 IP 和 Port;

  2、Consul 接收到 Producer 的注册后,每隔 10s(默认)会向 Producer 发送一个健康检查的请求,检验 Producer 是否健康;

  3、当 Consumer 发送 GET 方式请求 /api/address 到 Producer 时,会先从 Consul 中拿到一个存储服务 IP 和 Port 的临时表,从表中拿到 Producer 的 IP 和 Port 后再发送 GET 方式请求 /api/address;

  4、该临时表每隔 10s 会更新,只包含有通过了健康检查的 Producer。


     Spring Cloud Consul 项目是针对 Consul 的服务治理实现。Consul 是一个分布式高可用的系统,它包含多个组件,但是作为一个整体,在微服务架构中,为我们的基础设施提供服务发现和服务配置的工具。

补充:Consul多环境配置

Consul服务端

 1.在consul主页面进行添加对应的多环境配置Key/Value,对于不同的环境在后面用","分隔拼接

    配置对应的信息,如下图

开发环境dev

 生产环境prod

 测试环境test

 

Java实现代码

启动类

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

配置类

@Data
@Configuration
@ConfigurationProperties(prefix = "student")
public class ConsulConfig {private String name;private int age;}

测试控制器

@RestController
public class TestController {@Autowiredprivate ConsulConfig consulConfig;@GetMapping("/test")public void test(){System.out.println( consulConfig.getName()+"  "+consulConfig.getAge() );}}

bootstrap.yml配置文件

spring:application:name: consulDemocloud:consul:host: 127.0.0.1port: 8500discovery:service-name: ${spring.application.name}heartbeat:enabled: trueconfig:format: yamlprefix: config  #默认读取configdata-key: dataenabled: true# profile-separator: - # 环境的分隔符,默认是逗号,若设置为'-'则改为 mailer-dev,mailer-prodprofiles:active: dev

其中的spring.profiles.active后的dev可以改成 test 和 prod ,对应不同的环境,从而实现多环境配置。

测试结果:

1.dev环境

2.prod环境

 3.test环境

 

 


http://chatgpt.dhexx.cn/article/Rsi1fhg9.shtml

相关文章

Consul系列:什么是Consul?

引言 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案, consu1 的方案更“一站式”,内置了服务注册 与发现框架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心…

Consul安装并运行

Consul安装并运行 一、安装 官网:https://www.consul.io/downloads.html 下载完成后只有一个consul.exe文件,硬盘路径下双击运行 查看 consul 版本信息: consul --version 使用开发模式启动: consul agent -dev 二、运行 通…

Consul

Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框架、分布式一致性协议实现、健康检查、Key/Value 存储(配置中…

Consul详解

Spring Cloud 支持很多服务发现的软件,Eureka 只是其中之一,下面是 Spring Cloud 支持的服务发现软件以及特性对比: FeatureeuerkaConsulzookeeperetcd服务健康检查可配支持服务状态,内存,硬盘等(弱)长连接&#xff0c…

5分钟让你看懂Consul特性及搭建

一、前言 虽然说牛逼的公司都有那么几个牛逼的运维团队,牛逼的运维团队都有着神秘黑科技般敲代码的姿势;本人虽然不是一个运维工程师,但是有幸自己比较爱倒腾这些东西,也会那么一点点运维知识,虽然不算专业&#xff0…

consul简介

目录 Consul 简介 Consul 的使用场景 Consul 的优势 Consul 的角色 consul cluster集群架构图 Consul常用命令 consul agent 命令的常用选项 Spring Cloud Consul 项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,具有分布式、高可用、高扩…

Consul 基本概念、内部原理

1.什么是Consul? Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面。 这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全服务网格。 Consul需要数据平面并支持代理和本机集成模型…

Consul的介绍和基本使用

一、Consul的简单介绍 Consul是一套开源的分布式服务发现和配置管理系统,由HasiCorp公司用go语言开发的。提供了微服务系统中服务助理、配置中心、控制总线等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构造全方位的服…

Consul 注册中心介绍以及搭建

本篇重点介绍 Consul 是什么,它可以解决什么问题,它与现有软件的比较,以及如何开始使用它。 目录 1、常见的注册中心2、Consul 介绍3、Consul 特性4、Consul的基本架构5、Consul单节点安装与启动6、Consul启动命令详解7、了解Consul启动输出8…

jQuery删除元素或内容

删除元素/内容 remove():删除被选元素 empty():删除被选元素中子元素

JQuery 数组获取和删除元素

<script>var target []; target [0] "aaa000"; target [1] "bbb111"; target [2] "ccc222"; target [3] "ddd333"; target [4] "eee444"; target [5] "fff555";console.log("使用push()添加元素…

jQuery添加元素

今天教大家来通过jQuery来很容易地添加与删除元素以及内容。我们主要学习的方法有添加的方法四个。首先我们来通过append()和prepend()方法来添加若干新元素&#xff0c;老样子&#xff0c;我们先来看效果展示&#xff1a;一个段落标签和一个button标签组成简易页面&#xff1b…

Jquery添加与移除元素

显示隐藏 siblings() addclass() 给元素添加class&#xff0c;如果元素上已经有其他的classname&#xff0c;那么新的会追加到现有classname后面 用法&#xff1a;$("li").addClass("bigger") removerClass() removerClass():可以将元素的某个class移…

jquery的DOM节点操作(删除元素节点)

1.删除元素节点 在操作页面时&#xff0c;删除多余或者指定的页面元素是非常必要的。 jquery中提供了remove&#xff08;&#xff09;方法来删除元素。 其语法格式如下&#xff1a; 删除元素节点示例代码&#xff1a; <!DOCTYPE html> <html><head><met…

jQuery 创建元素、添加元素、删除元素 【一篇文章轻松拿下】

&#x1f451; 原生 JS 中&#xff0c;我们学习了一整套元素创建添加删除的操作&#xff0c;其中创建元素&#xff0c;我们用了 creatElement&#xff0c;添加元素有两种&#xff0c;分别是后面追加 apprndChild&#xff0c;和指定元素前插入 insertBefore&#xff0c;在 jQuer…

jQuery-删除元素

删除元素有两种方法 remove()&#xff1a;删除被选元素&#xff08;及其子元素&#xff09; empty()&#xff1a;从被选元素中删除子元素 remove&#xff08;&#xff09;代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><met…

“浅”谈容灾和双活数据中心(下)

本文接续前文&#xff1a;“浅”谈容灾和双活数据中心&#xff08;上&#xff09;&#xff0c;上 篇发布之后&#xff0c;瓜哥粉丝量暴涨了好几百&#xff0c;感谢大家关注&#xff01; 第三部分&#xff1a;双活&#xff0c;看上去很美。 3.1 装逼是要付出代价的 看…

存储数据保护技术——双活

目录 基本概念&#xff1a; 双活部署方式&#xff1a; 当数据中心A和数据中心B同时写入数据&#xff0c;怎么区分&#xff1f;怎样保证数据一致性&#xff1a; 分布式锁互斥&#xff1a;来保证数据的一致性 互斥&#xff1a; 分布式锁&#xff1a; 注意&#xff1a; 仲裁…

【精华】 数据中心双活该如何构建

ICT架构师技术交流(微信号ICT_Architect) 介绍分析和交流ICT行业最前沿技术&#xff0c;分享云计算、存储、服务器、数据中心、网络、软件定义和虚拟化等相关知识&#xff0c;旨在知识交流、开放共享和共同进步。 因为最近经常看到大家在讨论数据中心双活解决方案&#xff0c;…

双活数据中心概念及优缺点介绍

主备数据中心之间一般有热备、冷备、双活三种备份方式。 热备 热备的情况下&#xff0c;只有主数据中心承担用户的业务&#xff0c;此时备数据中心对主数据中心进行实时的备份&#xff0c;当主数据中心挂掉以后&#xff0c;备数据中心可以自动接管主数据中心的业务&#xff0c;…