Consul的介绍和基本使用

article/2025/9/20 15:33:02

一、Consul的简单介绍

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

二、Consul的优点

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

三、Consul的下载和启动

(1)打开consul官网
https://www.consul.io/downloads
(2)点击Download
在这里插入图片描述
(3)解压得到 consul.exe 文件,在 consul.exe 文件cmd 命令窗口执行:consul agent -dev进行启动
consul 自带 UI 界面,打开网址:http://localhost:8500 ,可以看到当前注册的服务界面。

四、Consul的快速使用-服务提供者

(1)创建springboot工程provider8006,引入下面依赖

<!--SpringCloud consul-server -->
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency><!-- SpringBoot整合Web组件 --><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></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR10</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!--在本地仓库找不到就到官网去找--><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>

(2)在配置文件配置下面信息

###consul服务端口号
server.port=8006
spring.application.name=consul-provider-payment
####consul注册中心地址
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.service-name=${spring.application.name}
#hostname: 127.0.0.1

(3)在主启动类,添加@EnableDiscoveryClient

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8006
{public static void main(String[] args) {SpringApplication.run(PaymentMain8006.class, args);}
}

(4)业务类Controller

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.UUID;@RestController
@Slf4j
public class PaymentController
{@Value("${server.port}")private String serverPort;@RequestMapping(value = "/payment/consul")public String paymentConsul(){return "springcloud with consul: "+serverPort+"\t   "+ UUID.randomUUID().toString();}
}

(5)验证测试

http://localhost:8006/payment/consul
http://localhost:8500 - 会显示provider8006

五、Consul的快速使用-.服务消费者

(1)创建springboot工程order80 - cloud-consumerconsul-order80,添加下面依赖

<dependencies><!--SpringCloud consul-server --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency><!-- SpringBoot整合Web组件 --><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>
</dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR10</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!--在本地仓库找不到就到官网去找--><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>

(2)在配置文件添加下面信息

###consul服务端口号
server.port=80
spring.application.name=cloud-consumer-order
####consul注册中心地址
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
spring.cloud.consul.discovery.service-name=${spring.application.name}
#hostname: 127.0.0.1

(3)在主启动类添加@EnableDiscoveryClient

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient //该注解用于向使用consul或者zookeeper作为注册中心时注册服务
public class OrderConsulMain80
{public static void main(String[] args) {SpringApplication.run(OrderConsulMain80.class, args);}
}

4)配置Bean

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;/***/
@Configuration
public class ApplicationContextConfig
{@Bean@LoadBalancedpublic RestTemplate getRestTemplate(){return new RestTemplate();}
}

(5)业务类

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;import javax.annotation.Resource;@RestController
@Slf4j
public class OrderConsulController
{public static final String INVOKE_URL = "http://consul-provider-payment";@Resourceprivate RestTemplate restTemplate;@GetMapping(value = "/consumer/payment/consul")public String paymentInfo(){String result = restTemplate.getForObject(INVOKE_URL+"/payment/consul",String.class);return result;}
}

(6)验证测试

运行启动consul,cloud-providerconsul-payment8006,cloud-consumerconsul-order80
http://localhost:8500/ 主页会显示出consul,cloud-providerconsul-payment8006,cloud-consumerconsul-order80三服务。
(7)访问测试地址 - http://localhost/consumer/payment/consul


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

相关文章

Consul 注册中心介绍以及搭建

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

jQuery删除元素或内容

删除元素/内容 remove()&#xff1a;删除被选元素 empty()&#xff1a;删除被选元素中子元素

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;…

阿里超大数据中心“异地双活”实践

灾备系统和应急管理体系建设是数据中心永不变更的热点话题。从“两地三中心”、“同城双活”到“异地双活”&#xff0c;业内的讨论层出不穷。即使在容灾备份领域较早入手的金融行业&#xff0c;在灾备切换时也是谨慎再谨慎的&#xff0c;在历年“真实切换”演练时“手软”的例…

深入剖析Vplex双活数据中心存储方案

EMC上一代存储双活方案是通过vPlex网关产品实现&#xff0c;具备异构其他厂商存储的能力&#xff0c;将各厂商存储虚拟化为统一的存储池&#xff0c;为上层服务器提供存储资源。从2010年vPlex发布以来其的硬件已经更新了VS1、VS2和VS6三代。2016年推出的VS6硬件引擎间通过40Gb …

04|同城双活:如何实现机房之间的数据同步?

04&#xff5c;同城双活&#xff1a;如何实现机房之间的数据同步&#xff1f; 你好&#xff0c;我是徐长龙。今天我们来看看用户中心改造的另一个阶段&#xff1a;构建多机房。 在业务初期&#xff0c;考虑到投入成本&#xff0c;很多公司通常只用一个机房提供服务。但随着业…

数据中心的双活与灾备方案设计

灾备建设的最终目的就是要保护业务的连续性运行&#xff0c;除了技术层面的支撑外&#xff0c;还有人员、规划和流程等非技术决策层面支撑。养兵千日&#xff0c;用在一时。只有技术和规划通力配合&#xff0c;才能在真正发生灾难时保证业务连续性。 因此&#xff0c;业务连续性…

多数据中心多活相关知识

Cell&#xff1a;业务可封闭收敛最小执行分片&#xff1b;业务对请求空间按一定维度&#xff08;比如会员、门店等&#xff09;划分分片。 LDC&#xff1a;逻辑数据中心&#xff0c;是由多个业务可封闭 cell 组成的集合单元&#xff0c;拥有独立的基础中间件系统&#xff08;包…

第三讲:如何构建双活数据中心方案

针对数据中心双活解决方案如何构建,笔者把大家常见的疑问和问题进行汇总,加上我个人的见解写成一篇比较全面的文章,分享出来供大家参考。由于工作原因,可能今后近一个月的时间不能给及时大家写文章了,但是过了这段时间过后会尽快呈现给大家。 双活本身其实有广义和狭义之…

数字孪生数据中心机房,智能 IDC 高阶运维

随着“东数西算”工程和新基建的加速落地&#xff0c;数智化技术正逐渐渗透到各领域。但随着数据中心建设规模的逐步扩大&#xff0c;必然带来能耗的大幅增长和机房设备数量的不断扩充&#xff0c;传统机房的监控和管理模式已无法满足数据中心“集中监控、统一管理”的需求。 …

两地三中心及双活数据中心具体示例说明

两地三中心 两地三中心的有几种实现形式&#xff0c;下图是一种典型案例。 在这一案例中&#xff0c;正常情况下&#xff0c;业务运行在主机房的设备之上。主存储与辅存储存在单向同步关系&#xff0c;即主储存的所有数据变更都会实时同步复制①到次存储上&#xff0c;从而…