SpringCloud(14)之SpringCloud Consul

        我们知道 Eureka 2.X 遇到困难停止开发了,所以我们需要寻找其他的替代技术替代Eureka,这一小 节我们就讲解一个新的组件Consul

一、Consul介绍

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

        我们来对比下当前服务注册与发现的主流技术:

对比项

euerka

Consul

zookeeper

etcd

服务健康检查

可配支持

服务状态,内

存,硬盘等

()长连接,

keepalive

连接心跳

多数据中心

支持

kv 存储服务

支持

支持

支持

一致性

raft

paxos

raft

cap

ap

cp

cp

cp

使用接口(多语 言能力)

http

支持 http  dns

客户端

http/grpc

watch 支持

支持 long polling/ 大部分增量

全量/支持long

polling

支持

支持 long

polling

自身监控

metrics

metrics

metrics

安全

acl /https

acl

https 支持

(弱)

spring cloud

集成

已支持

已支持

已支持

已支持

1.1 consul特性

  • 服务发现
  • 健康检查
  • key-value存储
  • 多数据中心
  • 社区活跃

1.2consul的优势

  • 使用 Raft算法来保证一致性,比复杂的 Paxos算法更直接.相比较而言,zookeeper采用的是 Paxos, 而 etcd 使用的则是 Raft。

  • 支持多数据中心,内外网的服务采用不同的端口进行监听。多数据中心集群可以避免单数据中心 的单点故障,而其部署则需要考虑网络延迟,分片等情况等。 zookeeper etcd 均不提供多数据中 心功能的支持。

  • 支持健康检查。 etcd 不提供此功能

  • 支持http和 dns协议接口。 zookeeper的集成较为复杂,etcd 只支持 http协议。

  • 官方提供 web 管理界面,etcd 无此功能。

  • 综合比较,Consul作为服务注册和配置管理的新星,比较值得关注和研究。

1.3 consul的角色

  • client 客户端,无状态,将 HTTP和 DNS 接口请求转发给局域网内的服务端集群。
  • server: 服务端,保存配置信息,高可用集群,在局域网内与本地客户端通讯,通过广域网与其它数据中心通讯。每个数据中心的 server量推荐为3个或是5个。

二、Consul工作原理

             

        Consul在项目中发挥服务注册与发现的功能,我们讲解下它的工作原理:

1.当Producer启动的时候,会向Consu1发送一个post请求,并向Consu1传输自己的IP和Port。
2.Consul接收到Producer的注册后,每隔10s(默认)会向Producer发送一个健康检查的请求,检验 Producer是否健康。
3.当Consumer以Http的方式向Producer发起请求,会先从Consu1中拿到一个存储服务IP和Port的临时表,从表中拿到Producer的IP和Port后再发送请求。
4.该临时表每隔10s会更新,只包含有通过了健康检查的Producer。
  1. 2.1 consul的安装

    1.         Consul 不同于Eureka需要单独安装,访问Consul 官网下载 Consul 的最新版本,当前最新版本是 1.9.0,我们使用consu]  1.9.0 windows amd64  版本。
      1.         下载地址:Install | Consul | HashiCorp Developer
        1.         历史下载版本: Consul Versions | HashiCorp Releases

        下载后的文件是consul1_1.9.0_windows_amd64.zip,   我们解压这个文件,里面有个文件 consul.exe,  我们将该文件所在目录添加到环境变量path 中。

        启动consul :dos  命令行执行如下命令:

consul   agent   -dev

        控制台访问 http://localhost:8500/

 

  • Services:    服务信息。
  • Nodes: 节点信息, Consul 支持集群。

  • Key/Value: 存储的动态配置信息。

  • ACL:权限信息。

  • Intentions ; 通过命令的方式对consul进行管理。


三、在项目中使用consul

        项目中要想使用Consul作为服务注册中心,只需要引入如下依赖包,在启动类上添加

@EnableDiscoveryclient 注解,并在application.yml 中添加Consul 服务地址即可:

3.1添加依赖

        在项目中添加依赖包:

<!--consul-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
    <version>2.2.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    <version>2.2.10.RELEASE</version>
</dependency>

        3.2在启动类中添加  @EnableDiscoveryclient    注解

        3.3在applacation.yaml中添加consul的配置信息

       

          配置如下:

spring:
    cloud:
    #Consul配置
        consul:
            host: 127.0.0.1
            port: 8500
            discovery:
            #注册到Consul中的服务名字
            service-name: ${spring.application.name}
            prefer-ip-address: true

        项目启动后,consul服务数据如下:

        

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

横空出世,Bright Data 低代码数据平台,即将颠覆你的认知!

大家好&#xff0c;我是锋哥&#xff0c;最近接了个监控平台的私活项目。由于监控公开的站点太多&#xff0c;在我无从下手迷茫之际&#xff0c;竟然无意中发现了这个宝藏级低代码数据平台 - 亮数据。功能强大&#xff0c;性能炸裂&#xff01; 传统开发 以前我们开发这种监控…

文件上传漏洞--Upload-labs--Pass10--双写绕过

一、什么是双写绕过 顾名思义&#xff0c;双写绕过就是双写文件后缀名来进行绕过&#xff0c;如&#xff1a;test.php 双写后为 test.pphphp。通常情况下双写绕过用于绕过源代码中的 str_ireplace()函数。 二、双写绕过原理 1、首先进行代码审计&#xff0c;源代码中有黑名单…

HTML5 Canvas 限定文本区域大小,文字自动换行,自动缩放

<!DOCTYPE html> <html> <body><h1>HTML5 Canvas 限定文本展示范围、自动计算缩放字体大小</h1><div id"tips">0</div> <div id"content">良田千顷不过一日三餐广厦万间只睡卧榻三尺良田千顷不过一日三餐…

六、回归与聚类算法 - 岭回归

目录 1、带有L2正则化的线性回归 - 岭回归 1.1 API 2、正则化程度的变化对结果的影响 3、波士顿房价预测 线性回归欠拟合与过拟合线性回归的改进 - 岭回归分类算法&#xff1a;逻辑回归模型保存与加载无监督学习&#xff1a;K-means算法 1、带有L2正则化的线性回归 - 岭回…

ktorm + ktorm-ksp + springboot搭建RBAC后台模板 实践

本文代码仓库&#xff1a;https://github.com/okfanger/ktorm-ksp-springboot-demo 0. 前言 使用kotlin写springboot是前几个月突然萌生的想法&#xff0c;起因是看到了 ktorm 官网里的一个截图&#xff1a; 没错&#xff0c;你可以一眼看出这款 orm 框架的特点&#xff0c…

测斜孔造孔与测斜管安装有什么要求

在工程测量中&#xff0c;测斜孔的造孔和测斜管的安装是两个重要的环节&#xff0c;它们直接关系到测量结果的准确性和可靠性。为了确保测斜孔造孔和测斜管安装的质量&#xff0c;需要遵循一系列严格的要求和规范。 测斜孔的造孔应遵循以下要求&#xff1a;钻孔应呈铅直布置&am…

探索数据宝藏:填写《全国数据资源调查》的乐趣与技巧

2月19日&#xff0c;国家数据局等四部门发布关于开展全国数据资源调查的通知。通知提出&#xff0c;为贯彻落实《数字中国建设整体布局规划》工作部署&#xff0c;摸清数据资源底数&#xff0c;加快数据资源开发利用&#xff0c;更好发挥数据要素价值&#xff0c;国家数据局、中…

袋鼠云产品功能更新报告09期|更全面,更多样,更高效

欢迎阅读袋鼠云09期产品功能更新报告。在此期报告中&#xff0c;我们秉持创新与优化并重的理念&#xff0c;对产品进行了深度打磨与全面升级。每一处细节的改进&#xff0c;都是我们对卓越品质的不懈追求&#xff0c;期待这些新功能能助力您的业务运营与发展&#xff0c;让数字…

openssl 生成nginx自签名的证书

1、命令介绍 openssl req命令主要的功能有&#xff0c;生成证书请求文件&#xff0c; 查看验证证书请求文件&#xff0c;还有就是生成自签名证书。 主要参数 主要命令选项&#xff1a; -new :说明生成证书请求文件 -x509 :说明生成自签名证书 -key :指定已…

ChatGPT 是什么

文章目录 一、ChatGPT 是什么二、ChatGPT的发明者三、ChatGPT的运作方式四、ChatGPT的技术五、ChatGPT的优势六、ChatGPT的局限性七、ChatGPT的应用八、ChatGPT的未来九、总结 一、ChatGPT 是什么 OpenAI的ChatGPT&#xff0c;即Chat Generative Pre-Trained Transformer&…

React 模态框的设计(二)

自定义组件是每个前端开发者必备的技能。我们在使用现有框架时难免有一些超乎框架以处的特别的需求&#xff0c;比如关于弹窗&#xff0c;每个应用都会用到&#xff0c;但是有时我们使用的框架中提供的弹窗功能也是功能有限&#xff0c;无法满足我们的应用需求&#xff0c;今天…

基于springboot+vue的智慧社区系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

C++入门学习(三十三)函数的定义,两数之和函数作为例子

为什么使用函数&#xff1a;将一些重复的代码封装&#xff0c;方便以后的使用&#xff0c;直接调用即可。 先给一个例子&#xff1a; // 函数返回整数类型 int addNumbers(int a, int b) { // 函数体 int sum a b; return sum; // 返回计算得到的和 } 返回值类型&…

蓝桥杯备赛系列——倒计时50天!

蓝桥杯备赛系列 倒计时50天&#xff01; 前缀和和差分 知识点 **前缀和数组&#xff1a;**假设原数组用a[i]表示&#xff0c;前缀和数组用sum[i]表示&#xff0c;那么sum[i]表示的是原数组前i项之和&#xff0c;注意一般用前缀和数组时&#xff0c;原数组a[i]的有效下标是从…

跳槽前应该做好哪些准备?

第一次求职也好&#xff0c;还是换工作也罢&#xff0c;都需要有严谨的考虑。对于已经工作上班的朋友来说&#xff0c;切不可轻易地辞掉工作&#xff0c;想要跳槽&#xff0c;一定要三思而后行&#xff0c;有一个周密的部署。跳槽有好处&#xff0c;也有弊端&#xff0c;频繁的…

Elasticsearch如何设置密码

目录 一、配置1.修改配置文件2.设置密码3.修改密码 二、验证 一、配置 1.修改配置文件 修改配置文件 config/elasticsearch.yml&#xff0c;写入以下配置&#xff1a; xpack.security.enabled: true discovery.type: single-node xpack.security.transport.ssl.enabled: tru…

【rust】vscode下rust-analyzer和Rust Test Lens的Lens

背景 一个粉丝问&#xff1a; 我编辑的launch.json为什么只在按F5的时候工作 按这个debug按钮就不工作&#xff1f; 那在哪改这个插件的配置文档&#xff1f;我一直用的F5 今天上午才注意到这个问题&#xff0c;比如怎么改程序的命令行参数&#xff0c;我意思是如果我非要用…

雾锁王国游戏服务器新手搭建教程(值得收藏)

雾锁王国游戏服务器怎么创建&#xff1f;阿里云雾锁王国服务器搭建教程是基于计算巢服务&#xff0c;3分钟即可成功创建Enshrouded游戏服务器&#xff0c;阿里云8核32G雾锁王国专用游戏服务器90元1个月、271元3个月&#xff0c;阿里云百科aliyunbaike.com亲自整理雾锁王国服务器…

https://registry.npm.taobao.org淘宝npm镜像仓库地址更新

在工作中有遇见获取淘宝的npm镜像存在问题&#xff0c;图示如下的报错&#xff1a; 根据报错的内容是说 https://registry.npm.taobao.org地址访问失败了&#xff0c;然后通过排查发现淘宝的npm镜像仓库地址有更新了。需要使用最新的地址 旧的淘宝镜像仓库&#xff1a;https://…

win系统下安装php8.3版本并配置环境变量的详细教程

本篇文章主要讲解在win系统下安装和配置php8.3版本&#xff0c;并配置环境变量的详细教程。 日期&#xff1a;2024年2月22日 作者&#xff1a;任聪聪 一、下载php8.3版本包 php8.3版本官方下载地址&#xff1a;https://windows.php.net/download#php-8.3 步骤一、打开下载地址…