SpringCloud-02 Consul服务注册与发现

news2024/9/23 19:23:06

Consul是一种用于服务发现、配置和分布式协调的开源工具。Consul提供了以下主要功能:
1.服务发现:Consul允许开发人员在微服务架构中注册和发现服务。它可以自动检测新添加的服务并为它们分配唯一的网络地址。

2.健康检查:Consul可以定期检查注册的服务的健康状况,以确保它们正常运行并能够提供服务。如果服务不可用,Consul会自动将其从服务注册表中移除。

3.分布式键值存储:Consul提供了一个分布式键值存储,可以用于存储配置信息、应用程序状态等。

4.多数据中心支持:Consul支持跨多个数据中心的部署,并提供了强大的数据中心间的服务发现和同步功能。

5.安全性:Consul提供了基于ACL的安全机制,可以通过访问控制列表来限制对服务和资源的访问。

consul agent -dev //开发者模式启动consul,打来后不要关闭cmd窗口
url地址: http://localhost:8500
把8001端口的服务注册进consul

//在对应端口的pom文件添加依赖
<!--SpringCloud consul discovery -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

spring:
  application:
    name: cloud-consumer-order
//添加yml文件配置
####Spring Cloud Consul for Service Discovery
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}

在启动类上添加注解	@EnableDiscoveryClient	再启动

在这里插入图片描述

//80端口的controller类中调用8001端口
public static final String paymentSrv_URL = "http://cloud-payment-service";

//80端口下config下RestTemplateConfig类添加@LoadBalanced标签
@Configuration
public class RestTemplateConfig {
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

除了常见的Consul(CP) 还有Eureka(AP) Zookeeper(CP)
CP:强调一致性
AP:强调可用性

当下每个微服务都有application.yml配置文件,繁琐且不易修改,这亦可以利用Consul解决

//添加pom依赖
<!--SpringCloud consul config-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

 //bootstrap.yml内容
 spring:
  application:
    name: cloud-payment-service
    ####Spring Cloud Consul for Service Discovery
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}
      config:
        profile-separator: '-' # default value is ",",we update '-'
        format: YAML

  # config/cloud-payment-service/data
  #       /cloud-payment-service-dev/data
  #       /cloud-payment-service-prod/data


 //application.yml内容
 server:
  port: 8001

# ==========applicationName + druid-mysql8 driver===================
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/db2024?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
    username: root
    password: root
  profiles:
    active: dev # 多环境配置加载内容dev/prod,不写就是默认default配置

# ========================mybatis===================
mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.dc.cloud.entities
  configuration:
    map-underscore-to-camel-case: true



//在consul添加配置,注意配置文件夹格式

//在controller中添加
   @Value("$server.port")
    private String port;

    @GetMapping("/pay/get/info")
    public String getInfoByConsul(@Value("${dc.info}") String dcInfo){
        return "dcInfo:" + dcInfo+"\t"+"port:" + port;
    }

Consul 动态及时刷新

//启动类添加 @RefreshScope 注解

//修改bootstrap.yml配置		但一般不要改,默认55秒
        watch:
          wait-time: 1

Consul持久化配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux学习-虚拟化平台安装和使用

注&#xff1a;系统使用Rock8.6 下载链接 通过百度网盘分享的文件&#xff1a;cirros.qcow2&#xff0c;node_base.xml等2个文件 链接&#xff1a;https://pan.baidu.com/s/1hupGQsMjrXMgngCy3lQLhw?pwdhlr6 提取码&#xff1a;hlr6[rootharbor ~]# cat /etc/redhat-releas…

Origin画图——柱状图与点线图结合优化

1.如何将下列不好看的柱状图进行优化呢。 2.首先双击坐标轴&#xff0c;将轴的参数进行修改&#xff0c;包含朝向大小&#xff0c;粗细。修改后如下所示。 3.然后我们来修改柱状图&#xff0c;双击柱状图&#xff0c;依次修改内容。 4.选取颜色&#xff0c;按照修改后&#…

网络层 VI(路由算法与路由协议)【★★★★★★】

&#xff08;★★&#xff09;代表非常重要的知识点&#xff0c;&#xff08;★&#xff09;代表重要的知识点。 一、路由算法 路由算法的目的很简单&#xff1a;给定一组路由器及连接路由器的链路&#xff0c;路由算法要找到一条从源路由器到目的路由器的“最佳”路径。通常&a…

跑步戴的耳机哪个品牌的好?五大高口碑骨传导耳机推荐!

跑步&#xff0c;作为一项简单而高效的运动方式&#xff0c;越来越受到人们的青睐。在跑步的过程中&#xff0c;音乐往往能够成为我们最好的伴侣&#xff0c;它不仅能够激发我们的热情&#xff0c;还能帮助我们保持节奏&#xff0c;让跑步变得更加轻松愉快。然而&#xff0c;选…

两个月冲刺软考——判断是否为阻塞节点,是否可化简,化简顺序是什么?存储器的分层结构;可屏蔽中断与不可屏蔽中断

1.判断是否为阻塞节点&#xff0c;是否可化简&#xff0c;化简顺序是什么&#xff1f; 首先要理解什么是阻塞节点&#xff1f;所谓阻塞节点就是从这个进程开始执行&#xff0c;会让程序陷入死锁&#xff0c;执行不了。解题关键就在于选择入口&#xff1a;挨个去尝试先执行P1、…

Windows安装MinIO对象存储服务详细版本

一、什么是MinIO? Minio 是一个高性能、开源的对象存储服务器。 Minio 具有以下主要特点和优势&#xff1a; 一、功能特点 1. 多平台支持 - 可以在各种操作系统上运行&#xff0c;包括 Linux、Windows 和 macOS。这使得它可以适应不同的服务器环境和开发需求。 2. 对象存储 - …

【从头写CAD】2 建立项目及角度类

文章目录 一、说明二、操作步骤三、角度单位四、源代码1. mod.rs 内容2. angle.rs 内容3. main.rs 补充调试内容 五、运行1. 运行程序 一、说明 CAD离不开角度数据&#xff0c;目前CAD开源项目多用double类型表示角度。我认为有必要独立出来&#xff0c;让三角函数仅出现该类内…

白酒酿造:传统工艺与现代科技的整合

在千年的历史长河中&#xff0c;白酒酿造技艺如一颗璀璨的明珠&#xff0c;闪烁着中华文明的智慧光芒。如今&#xff0c;随着科技的飞速发展&#xff0c;传统酿造工艺与现代科技在这片古老的土地上交织碰撞&#xff0c;共同书写着白酒酿造的新篇章。豪迈白酒&#xff08;HOMANL…

828华为云征文|基于华为云Flexus云服务器X搭建FTP服务器

❀目录 ❀概述❀特点❀环境准备❀安装❀配置文件修改❀创建目录、修改权限❀控制台安全组开启21端口❀工具验证❀总结 ❀概述 FTP文件传输协议是一种在网络中进行文件传输的广泛使用的标准协议。作为网络通信中的基础工具&#xff0c;FTP允许用户通过客户端软件与服务器进行交…

栈和队列——用栈实现队列

栈的特点是先进后出&#xff0c;队列的特点是先进先出。根据题中要求&#xff0c;我们应用两个栈实现一个队列。我们可以类比用队列实现栈&#xff0c;我们可以先将元素都插入到栈1中&#xff0c;当我们想要取出元素时&#xff0c;我们可以将栈1中的所有数据依次插入到栈2中&am…

污点、容忍、不可调度、排水、数据卷

目录 污点taint 污点的格式 1. key:effect 键名&#xff1a;污点类型 2. keyvalue:effect 键名数值&#xff1a;污点类型 污点的类型 1. NoSchedule 2. PreferNoSchedule 3. NoExecute&#xff08;驱逐&#xff09; 设置污点&#xff08;主节点操作&#xff09…

STM32:通过旋转计数器的计数控制舵机旋转的角度

声明&#xff1a;本博客为各模块之间结合的自主研究学习。 目录 一、按键操控舵机旋转&#xff08;单向&#xff09; 1.1、实物图讲解 1.2、代码讲解 1.2.1、PWM.c 具体步骤&#xff1a; 完整代码&#xff1a; 1.2.2、PWM.h 1.2.3、Servo.c && Servo.h 1.2.4、…

ts 类型分类

目录 01 ts 相关指令 02 类型声明空间与变量声明空间 03 类型注解和类型推断 04 类型分类 , 联合类型与交叉类型 05 never类型 any类型 和unknown类型 01 ts 相关指令 全局安装 typescript 模块 npm i -g typescript 安装完成之后 可以将ts文件转换成js文件 tsc xxx.ts…

为什么越来越多的人选择开放式耳机?平价高品质蓝牙耳机推荐

越来越多的人选择开放式耳机&#xff0c;主要是因为其具有多方面的优势&#xff0c;具体如下&#xff1a; 佩戴舒适度高&#xff1a;开放式耳机不入耳&#xff0c;不堵塞耳道&#xff0c;避免了对耳道的压迫和摩擦&#xff0c;长时间佩戴也不易产生闷热感和不适感。例如&#x…

windows安装git

windows安装git 1.通过git官网下载 官网&#xff1a;https://git-scm.com/downloads 2.安装git &#xff08;1&#xff09;找到下载到的文件&#xff0c;进行双击进行安装 &#xff08;2&#xff09;安装使用说明点击Next &#xff08;3&#xff09;选择自己的安装地址&a…

大屏可视化:阿里 DataV 大屏怎么做自适应的?

你好&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。 阿里 DataV 大屏是一款功能强大的数据可视化应用搭建工具&#xff0c;由阿里云提供&#xff0c;旨在帮助用户通过图形化的界面轻松搭建专业水准的可视化应用。 下面我们一起看下 DataV 大屏 是如何做自适应…

【嵌入式】uint32值写入到二进制文件中的存储详情

背景 项目预留100字节用于存储参数文件。现在有些数值一个字节表示不够&#xff0c;需要用4个字节。比如数值1144201745&#xff0c;对应的十六进制0x44332211,那么在二进制中存储是怎么样的呢&#xff1f;做个总结 分析 写了一个sample&#xff0c;把uint32_t u32Value1{0x…

【ThreadLocal源码】深入浅出ThreadLocal

【ThreadLocal源码】深入浅出ThreadLocal-CSDN博客

Linux之Prometheus

认识普罗米修斯 1、prometheus介绍 Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合, 由go语言开发。 适合监控容器平台, 因为kubernetes(俗称k8s)的流行带动了prometheus的发展。 PS&#xff1a;文档使用prometheus监控物理服务器。 prometheus的…

数组程序基础知识

为了处理方便&#xff0c;把具有相同类型的变量按有序的形式组织起来。这些同类数据元素的集合称之为数组。数组可分为数值数组、字符数组、指针数组、结构数组等。 01--一维数组 在使用数组前需要先定义&#xff1a; 类型说明符 数组名[常量表达式]&#xff1b; 类型说明符…