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.1port: 8500discovery:#注册到Consul中的服务名字service-name: ${spring.application.name}prefer-ip-address: true

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

        

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

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

相关文章

Spring之AOP源码解析(中)

前言 在上一篇文章中,我们讲解了Spring中那些注解可能会产生AOP动态代理,我们通过源码发现,完成AOP相关操作都和ProxyFactory这个类有密切关系,这一篇我们将围绕这个类继续解析 演示 作用 ProxyFactory采用策略模式生成动态代理对象,具体生成cglib动态代理还是jdk动态代理,…

合金电阻2512 0.01R是怎么应用在电池保护板中的

合金电阻2512 0.01R可以应用在电池保护板中的过流保护电路中。电池保护板用于监测和控制电池的充放电状态&#xff0c;以防止电池过充、过放和过流等情况&#xff0c;保护电池的安全和寿命。 过流保护电路是电池保护板的主要功能之一&#xff0c;用于检测电池输出电流是否超过安…

ocr识别tesseract.js本地复现

来源&#xff1a; https://github.com/naptha/tesseract.js chatgpt今天帮倒忙&#xff0c;一直给一些旧的东西&#xff0c;代码就老报错&#xff0c;最后还是我出面看看log和err调了一下&#xff0c;还的是我啊 复现效果 这个挺好复现的&#xff0c;用的英文模式比中文识别…

Git笔记——2

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、撤销修改__情况一 二、撤销修改__情况二 三、撤销修改__情况三 四、删除文件 五、理解分支 六、创建、切换和合并分支初体验 七、删除分支 八、合并冲突 总…

2024年1月手机市场行业分析:苹果手机份额骤降,国产高端手机成功逆袭!

小米Ultra发布。 一方面&#xff0c;我们有望看到国产手机再一次超越自己的决心&#xff0c;继续创新追逐高端&#xff1b;另一方面&#xff0c;我们也不得不正视目前手机市场所面临的危机状态。 2024年1月的线上手机市场远不如去年。根据鲸参谋数据显示&#xff0c;今年1月京…

浅谈数据分析工具在智慧城市中的作用

随着城市化、技术进步和人口不断增长&#xff0c;智慧城市已成为当今世界主要技术发展之一。 智慧城市设备依靠描述模型对城市环境产生的大量数据进行数据分析。 在这种城市景观中&#xff0c;智慧城市是技术和可持续的城市地区&#xff0c;利用信息和通信技术(ICT)来改善城市…

maven配置多仓库私服

经常见我们除了需要官方的仓库以外&#xff0c;更多是配置了国内的阿里云公共仓库。但很多的企业会有自己的公共组件&#xff0c;两者会结合起来使用&#xff0c;就需要配置公司的私服。 而经常性的&#xff0c;我们会在 apache-maven-3.8.6\conf\settings.xml 中&#xff0c;…

客户端web开发工具

文章目录 安全网络Linter-->捕获代码错误-->eslint源代码控制-->Git代码格式化-->Prettier打包工具--Parcel--Webpack 转换--Babel开发后阶段测试工具配置工具其他 node&#xff0c;npm、yarnnode.js包管理器npmyarn https://developer.mozilla.org/zh-CN/docs/Lea…

请简述你对SpringMVC的理解

SpringMVC是一种基于Java语言开发&#xff0c;实现了WebMVC设计模式&#xff0c;请求驱动类型 的轻量级Web框架。 采用了MVC架构模式的思想&#xff0c;通过把Model&#xff0c;View&#xff0c;Controller分离&#xff0c;将Web层进 行职责解耦&#xff0c;从而把复杂的Web应…

2024水科技大会暨技术装备成果展览会——城镇雨污分流及污水处理提质增效论坛(五)

为积极应对“十四五”期间我国生态环境治理面临的挑战&#xff0c;加快生态环境科技创新&#xff0c;构建绿色技术创新体系&#xff0c;全面落实科学技术部、生态环境部等部委编制的《“十四五”生态环境领域科技创新专项规划》&#xff0c;积极落实四川省人民政府与上海大学《…

nginx 具体介绍

一&#xff0c;nginx 介绍 &#xff08;一&#xff09;nginx 与apache 1&#xff0c; Apache event 模型 相对于 prefork 模式 可以同时处理更多的请求 相对于 worker 模式 解决了keepalive场景下&#xff0c;长期被占用的线程的资源浪费问题 因为有监听线程&#…

《Python 语音转换简易速速上手小册》第3章 文本到语音的转换(2024 最新版)

文章目录 3.1 文本到语音的原理3.1.1 基础知识3.1.2 主要案例:自动新闻播报器案例介绍案例 Demo案例分析3.1.3 扩展案例 1:智能助手案例介绍案例 Demo案例分析3.1.4 扩展案例 2:电子书阅读器案例介绍案例 Demo