Java17 --- SpringCloud之Consul

目录

一、consul的使用

1.1、主要功能

1.2、安装及运行 

1.3、添加微服务到consul 

 1.3.1、8001微服务添加相关pom、配置文件、注解

1.3.2、80微服务添加相关pom、配置文件、注解

 1.4、三个注册中心异同

1.5、consul进行分布式配置

1.5.1、修改8001的yml配置文件

1.5.2、在consul中进行配置 

1.6、配置动态刷新

1.7、consul配置持久化

1.7.1、创建文件及文件夹

 1.7.2、consul-start.bat内容


一、consul的使用

1.1、主要功能

服务发现、健康监测、KV存储、多数据中心、可视化web界面

1.2、安装及运行 

 解压即可

访问地址:http://localhost:8500/

1.3、添加微服务到consul 

 1.3.1、8001微服务添加相关pom、配置文件、注解

   <!--SpringCloud consul discovery --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-consul-discovery</artifactId></dependency>
spring:application:name: cloud-payment-servicedatasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/cloud2024?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowPublicKeyRetrieval=trueusername: rootpassword: 123456####Spring Cloud Consul for Service Discoverycloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}

在主启动类上添加 

@EnableDiscoveryClient

1.3.2、80微服务添加相关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####Spring Cloud Consul for Service Discoverycloud:consul:host: localhostport: 8500discovery:prefer-ip-address: true #优先使用服务ip进行注册service-name: ${spring.application.name}

在主启动类上添加 

@EnableDiscoveryClient

config配置类

@Bean@LoadBalancedpublic RestTemplate restTemplate(){return  new RestTemplate();}

controller层

public static final String URL = "http://cloud-payment-service";

 1.4、三个注册中心异同

AP架构

当网络分区出现后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。

当数据出现不一致时,虽然A, B上的注册信息不完全相同,但每个Eureka节点依然能够正常对外提供服务,这会出现查询服务信息时如果请求A查不到,但请求B就能查到。如此保证了可用性但牺牲了一致性结论:违背了一致性C的要求,只满足可用性和分区容错,即AP

CP架构

当网络分区出现后,为了保证一致性,就必须拒接请求,否则无法保证一致性,Consul 遵循CAP原理中的CP原则,保证了强一致性和分区容错性,且使用的是Raft算法,比zookeeper使用的Paxos算法更加简单。虽然保证了强一致性,但是可用性就相应下降了,例如服务注册的时间会稍长一些,因为 Consul 的 raft 协议要求必须过半数的节点都写入成功才认为注册成功 ;在leader挂掉了之后,重新选举出leader之前会导致Consul 服务不可用。结论:违背了可用性A的要求,只满足一致性和分区容错,即CP

 

1.5、consul进行分布式配置

1.5.1、修改8001的yml配置文件

application.yml文件

server:port: 8001# ==========applicationName + druid-mysql8 driver===================
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/cloud2024?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&allowPublicKeyRetrieval=trueusername: rootpassword: 123456profiles:active: dev # 多环境配置加载内容dev/prod,不写就是默认default配置# ========================mybatis===================
mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.cjc.cloud.entitiesconfiguration:map-underscore-to-camel-case: true

bootstrap.yml配置文件

spring:application:name: cloud-payment-service####Spring Cloud Consul for Service Discoverycloud:consul:host: localhostport: 8500discovery:service-name: ${spring.application.name}config:profile-separator: '-' # default value is ",",we update '-'format: YAML

1.5.2、在consul中进行配置 

文件创建格式:config/cloud-xxx-dev/data

1.5.3、测试代码

 @Value("${server.port}")private String port;@GetMapping("/pay/info")public ResultData getInfo(@Value("${cjc.info}") String info){return ResultData.success("info:" + info + " port:" + port);}

1.6、配置动态刷新

在服务主启动类上添加注解

@RefreshScope //动态刷新

1.7、consul配置持久化

1.7.1、创建文件及文件夹

 1.7.2、consul-start.bat内容

@echo.服务启动......  
@echo off  
@sc create Consul binpath= "D:\tools\consul\consul.exe agent -server -ui -bind=127.0.0.1 -client=0.0.0.0 -bootstrap-expect  1  -data-dir D:\tools\consul\mydata   "
@net start Consul
@sc config Consul start= AUTO  
@echo.Consul start is OK......success
@pause

 以管理员运行即可

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

map、set模拟(底层封装红黑树)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言 前面我们对红黑树进行了模拟实现&#xff1a; 现在我们将使用我们模拟的map和set对我们模拟的红黑树进行封装。 并且&#xff0c;本篇将增加红黑树的迭代器&#xff0c;模拟迭代器&#xff08;这里理解原理即可&…

重建大师模型构建精细网格失败是什么原因导致的呢?(如下图)

出现图中的报错一般是显存溢出、瓦块过大造成的。 重建大师是一款专为超大规模实景三维数据生产而设计的集群并行处理软件&#xff0c;输入倾斜照片&#xff0c;激光点云&#xff0c;POS信息及像控点&#xff0c;输出高精度彩色网格模型&#xff0c;可一键完成空三、自动建模和…

flex弹性盒子实现左中右居中布局

1、效果展示 2、布局与样式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>测试弹性盒子</title> </head> <body> <div class"out-parent"><div class"…

计算机网络 —— 运输层

运输层 5.1 运输层概述 运输层的主要任务是&#xff0c;如何为运行在不同主机上的应用进程提供直接的通信服务。运输层协议又称为端到端协议。 根据应用需求的不同&#xff0c;因特网的运输层为应用层提供了两种不同的运输协议&#xff0c;即面向连接的TCP和无连接的UDP 5.2…

Vant中<van-button>中icon的位置设置

一般在<van-button>按钮中加入icon&#xff0c;其位置都在左侧 我们可以用&#xff1a;van-position&#xff0c;改变图标展示位置 如&#xff1a;icon-position"right"

【30天】Python从入门到精通详解版—第一天—Python编程语言简介

Python编程语言简介 Python 简介Python 发展历史Python 特点Python 环境搭建Python下载Python安装环境变量配置在 Unix/Linux 设置环境变量在 Windows 设置环境变量 运行Python Python 简介 Python是一种高级编程语言&#xff0c;由Guido van Rossum于1989年底发明。Python在设…

React入门 学习全记录(适合和我一样有Vue经验想学习react的同学~)

前端目前的三大框架&#xff1a;Vue、React、Angular比较 都采用了组件化开发的方式&#xff0c;都是基于MVVM的框架有着虚拟DOM&#xff0c;Vue 和 Angular 都采用了响应式设计的方式&#xff0c;当数据发生变化时会自动更新视图。React 和 Angular 的复杂性也使得它们更加适…

MongoDB黑窗口操作(CRUD)

目录 连接数据库 插入数据 for循环插入数据 根据条件查询 修改数据 删除数据 连接数据库 对应路径下cmd中输入命令mongo即可 插入数据 j{name:"mongo"} t{x:3} 提交&#xff1a;db.things.svae(j);db.things.svae(t); 查询&#xff1a;db.things.find(); …

Java后端八股文之java基础

文章目录 0.Java 中有 8 种基本数据类型1. 为什么浮点数运算会丢失精度&#xff1f;如何解决&#xff1f;2. 面向对象的三大特征2.1 封装2.2 继承2.3 多态 3. 深拷贝和浅拷贝的区别&#xff1f;什么是引用拷贝&#xff1f;4. equals方法与“”方法4.1 4.2 equals方法 5.hashcod…

数据分析之一些Excel函数

数据分析之Excel的使用 SUM()求和SUMIF()单条件求和SUMIFS()多条件求和日期函数YEAR()提取年份MONTH()提取月份DAY()提取日DATE()函数 SUBTOTAL()求和IF()函数IF嵌套 VLOOKUP()搜索取值MATCH()返回行值或列值INDEX()定位取值 SUM()求和 SUM(number1,[number2],…) 对选中的区域…

00后卷王自述,我真的很卷。。。

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 前段时间去面试了一个公司&#xff0c;成功拿到了offer&#xf…

什么洗地机值得推荐?旗舰洗地机希亦、追觅、西屋、海尔实际表现如何?

洗地机这个产品相信大家已经不陌生了&#xff0c;它集合吸尘器和电动扫地拖把的功能&#xff0c;轻轻推拉便可以解决地面上的赃物&#xff0c;且不用我们手动清洗滚刷&#xff0c;深得家务人的喜爱&#xff0c;可是&#xff0c;当我们真正要去选购的时候&#xff0c;还是很纠结…