微服务注册中心为什么要使用Consul?

SpringCloud微服务架构之注册中心 | Consul、Nacos 介绍SpringCloud注册中心,包括Consul,Nacos。 阅读详情

一、Eureka不建议使用

在选型微服务注册中心时,一定要长远考虑,SpringCloud提供了Eureka作为服务注册中心,我们可以开箱即用,但是,对于服务注册中心随着业务需求的不断变化,对服务注册中心提出了更高要求,Eureka就不太适合了,看到“Eureka 2.0 开源工作宣告停止,继续使用风险自负”。
eureka.png
这意味着如果开发者继续使用作为 2.x 分支上现有工作 repo 一部分发布的代码库和工件,则将自负风险,对此,专家建议开发者尽快将相关业务迁移到 Consul/ZooKeeper/Etcd等工具上。

二、Consul与Zookeeper的区别

Consul是一个在国外流行的服务发现和配置共享的服务软件。本文翻译自Consul的官方文档,文中重点讲述:在与主流同类软件ZooKeeper、Doozerd以及Etcd比较时,Consul的优势所在。

ZooKeeper、Doozerd、Etcd在架构上都非常相似,它们都有服务节点(server node),而这些服务节点的操作都要求达到节点的仲裁数(通常,节点的仲裁数遵循的是简单多数原则)。此外,它们都是强一致性的,并且提供各种原语。通过应用程序内部的客户端lib库,这些原语可以用来构建复杂的分布式系统。

Consul在一个单一的数据中心内部使用服务节点。在每个数据中心中,为了Consule能够运行,并且保持强一致性,Consul服务端需要仲裁。然而,Consul原生支持多数据中心,就像一个丰富gossip系统连接服务器节点和客户端一样。

当提供K/V存储的时候,这些系统具有大致相同的语义,读取是强一致性的,并且在面对网络分区的时候,为了保持一致性,读取的可用性是可以牺牲的。然而,当系统应用于复杂情况时,这种差异会变得更加明显。

这些系统提供的语义对开发人员构建服务发现系统很有吸引力,但更重要的是,强调开发人员要构建这些特性。ZooKeeper只提供一个原始的K/V值存储,并要求开发人员构建他们自己的系统来提供服务发现功能。相反的是,Consul提供了一个坚固的框架,这不仅仅是为了提供服务发现功能,也是为了减少推测工作和开发工作量。客户端只需简单地完成服务注册工作,然后使用一个DNS接口或者HTTP接口就可以执行工作了,而其他系统则需要你定制自己的解决方案。

一个令人信服的服务发现框架必须包含健康检测功能,并且考虑失败的可能性。要是节点失败或者服务故障了,即使开发人员知道节点A提供Foo服务也是没用的。Navie系统利用的是心跳、周期性更新和TTLs,这些系统不仅需要工作量与节点数量成线性关系,并且对服务器的固定数量提出了要求。此外,故障检测窗口的存活时间至少要和TTL一样长。

ZooKeeper提供了临时节点,这些临时节点就是K/V条目,当客户端断开连接时,这些条目会被删除。虽然这些临时节点比一个心跳系统更高级,但仍存在固有的扩展性问题,并且会增加客户端的复杂性。与ZooKeeper服务器端连接时,客户端必须保持活跃,并且去做持续性连接。此外,ZooKeeper还需要胖客户端,而胖客户端是很难编写,并且胖客户端会经常导致调试质询。

Consul使用一个完全不同的架构进行健康检测。Consul客户端可以运行在集群中的每一个节点上,而不是拥有服务器节点,这些Consul客户端属于一个gossip pool,gossip pool提供了一些功能,包括分布式健康检测。gossip协议提供了一个高效的故障检测工具,这个故障检测工具可以应用到任意规模的集群,而不仅仅是作用于特定的服务器组。同时,这个故障检测工具也支持在本地进行多种健康检测。与此相反,ZooKeeper的临时节点只是一个非常原始的活跃度检测。因为有了Consul,客户端可以检测web服务器是否正在返回200状态码,内存利用率是否达到临界点,是否有足够的数据存储盘等。此外,ZooKeeper会暴露系统的复杂性给客户端,为了避免ZooKeeper出现的这种情况,Consul只提供一个简单HTTP接口。

Consul为服务发现、健康检测、K/V存储和多数据中心提供了一流的支持。为了支持任意存储,而不仅仅是简单的K/V存储,其他系统都要求工具和lib库要率先建立。然而,通过使用客户端节点,Consul提供了一个简单的API,这个API的开发只需要瘦客户端就可以了, 而且,通过使用配置文件和DNS接口,开发人员可以建立完整的服务发现解决方案,最终,达到避免开发API的目的。

个人博客
腾讯云社区
掘金
优快云
简书
GitHub
码云
OSCHINA
Segmentfault
公众号:wx.jpg

微服务架构:注册中心 Eureka、ZooKeeper、Consul、Nacos的选型对比详解 阅读详情

相关推荐

从PLC到机械臂:揭秘工业自动化中的信号交互与控制逻辑

本文深入解析了PLC与机械臂在工业自动化中的信号交互与控制逻辑,详细介绍了硬件连接方案、通信机制及控制逻辑设计。通过西门子PLC与六轴机械臂的实战案例,展示了从信号采集到动作执行的完整流程,并探讨了高级控制策略与行业应用前景,为工程师提供了一套完整的实践框架。

weixin_29304985的博客 388

Consul 基本概念、内部原理

1.什么是Consul? Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面。 这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全服务网格。 Consul需要数据平面并支持代理和本机集成模型。 Consul附带一个简单的内置代理,因此一切都可以开箱即用,但也支持第三方代理集成,如Envoy。 Consul 提供的关键功能: 服务发现:Consul的客户端可以注册服务,例如api或mysql,其他客户端可以使用Consul来发现给定服务的提供者。使用DNS或H

qq_40965644的博客 2450

创客学院嵌入式驱动开发——学习资料汇总

1.创客学院知识巩固-01C语言回顾_C/C++_Set_Mode的博客-优快云博客https://blog.youkuaiyun.com/Set_Mode/article/details/94431050 2.创客学院知识巩固-02数据结构_Set_Mode的博客-优快云博客https://blog.youkuaiyun.com/Set_Mode/article/details/94431087 3.创客学院知...

snaking616 5116

consul、eureka、nacos 为何选择?

配置中心 eureka 不支持 consul 支持 但用起来偏麻烦,不太符合springBoot框架的命名风格,支持动态刷新 nacos 支持 用起来简单,符合springBoot的命名风格,支持动态刷新 注册中心 eureka 依赖:依赖ZooKeeper 应用内/外:直接集成到应用中,依赖于应用自身完成服务的注册与发现, ACP原则:遵循AP(可用性+分离容忍)原则,有...

点滴记录 3430

手把手教你:在联想/戴尔笔记本上安装华为电脑管家,实现多屏协同(附详细避坑步骤)

本文详细指导如何在联想、戴尔等非华为笔记本上安装华为电脑管家,实现多屏协同功能。从硬件兼容性检查到定制化安装流程,再到功能调优与异常处理,提供了一套完整的解决方案,帮助用户突破品牌限制,享受华为生态的高效办公体验。

weixin_30251829的博客 851

深入C6678启动流程:从BootRom参数表到多核镜像部署的完整解析

本文深入解析TMS320C6678 DSP的启动流程,从BootRom参数表到多核镜像部署的全过程。详细介绍了七种启动模式的工程选择、多核镜像构建技巧以及二级引导策略,帮助开发者掌握C6678的启动机制与调试方法,提升嵌入式系统开发效率。

weixin_30505225的博客 612

使用Consul打造弹性可扩展的PaaS平台

作者介绍 杜威程序猿一枚,混迹互联网研发和运维近十年。《Linux系统案例精解》合著者之一。亮风台小伙伴,专注DevOps、云计算、大数据等相关领域。 应用背景 HiAR 是亮风台打造的新一代增强现实(AR)开发平台,提供简单易用、功能强大、跨平台的 AR 服务。让广大开发者可以轻松使用最前沿的计算机视觉技术、计算机图形学技术,快速搭建个性化的 AR 应用。

ztsinghua的专栏 690

kettle从入门到精通 第九十二课 ETL之kettle 使用Kettle的Carte对外发布读写接口

场景:使用kettle实现将查询结果返回给客户端,也就是说kettle暴露查询接口供外围系统调用。前提必须是使用carte服务才可以提供接口供外部系统调用。具体实操方法如下:1、设计转换根据具体需求设计转换,主要用到的步骤有获取变量(从请求参数中获取变量)、json输入(解析入参),json 输出将结果转换为json格式输出到客户端。如下图所示:2、接收参数使用获取变量步骤来接收接口请求参数,变量通过${}方法进行获取,如下图${PARAM}则是获取PARAM参数,将参数赋值为req字段。

zhangjin1222的博客 954

浅谈为什么选择consul

文章目录前言目标关键字一、为什么选择1 安全的多云服务网络2 强大的生态系统3 通过运行状况检查发现服务4 动态负载平衡5 跨任何运行时的服务网格6与Kubernetes集成和扩展二、优点1组织的复杂性2技术复杂度三、使用及场景总结参考 前言 在家不会迎宾客,出外方知少主人。 目标 consul的基本原理和使用场景 关键字 devops 一、为什么选择 1 安全的多云服务网络 利用基于意图的策略和服务网格资源之间的自动mTLS加密,在任何环境中运行的安全服务 2 强大的生态系统 Consul为许多流行的

上上迁的专栏 1162

RoboMaster电控入门:手把手教你用STM32CubeMX配置大疆C板CAN总线驱动GM6020电机

本文详细介绍了如何使用STM32CubeMX配置大疆C板CAN总线驱动GM6020电机,适用于RoboMaster电控入门。从硬件准备到CubeMX工程初始化,再到CAN过滤器配置和电机控制协议解析,手把手教你避开常见配置陷阱,实现精准控制。

weixin_42524762的博客 267

OpenCV实战之人脸美颜美型(八)——大眼(下)

我们需要将上述描述量化表达,以r代表上述变形区域的圆的半径,X表示原始图像像素到变形圆圆心的距离,Y表示像素变形后的其距离变形圆圆心的距离,则其形状大致如下图所示。如下图所示,我们可以规定处理区域为眼睛为圆心的一个圆形,从圆心区域开始图像会放大,但该放大的比例随着距离圆心的距离而变小,直至边缘区域的放大比例为0。不过在实际图像变形操作中我们要从目标图像映射到原图,因此我们需要将X/Y调换,让X表示变形后图像的像素距离变形圆中心的距离,Y表示原图像素距离变形圆中心的距离,则其形状如下图所示。

On my way 901

微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比

前言 服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。 CAP理论 ...

琦彦 22万+

80、编程学习资源与x86知识全解析

本文详细介绍了编程学习中多个领域的优秀书籍和博客资源,涵盖逆向工程、C/C++、x86/x86-64架构、ARM、汇编语言、Java、UNIX、密码学等多个方向。同时,深入解析了x86架构的核心知识,包括术语、通用寄存器、FPU寄存器、SIMD寄存器、调试寄存器以及常用指令的使用方法和操作步骤。通过本文,读者可以系统地掌握底层编程知识,并应用于逆向工程、系统开发和性能优化等领域。

tree的博客 219

微服务分布式(二、注册中心Consul)

微服务的注册中心 Consul

Java 璐到底 1723

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

微服务注册中心之Zookeeper,Eureka,Nacos,Consul,Kubernetes区别

对于如何选择这两种方式,其实还有一个数据一致性问题可以聊聊,比如选择定时器肯定就抛弃了强一致性,最后要求的是最终一致,这里就不深入展开了,另外你可能还会说服务的移除等等这些功能都没介绍,在我看来那只是一个附加功能,注册中心重点还是在于服务注册和发现,其他都是锦上添花罢了。更重要的是,当服务注册中心不可用时,服务消费者可以利用本地缓存路由实现对现有服务的可靠调用。服务端的负载均衡,给服务提供者更强的流量控制权,但是无法满足不同的消费者希望使用不同负载均衡策略的需求。开始介绍以上5种实现注册中心的方式。

上善若泪 4418

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

+Springcloud微服务注册中心之Consul

现在市面上越来越多的企业采用分布式微服务来搭建项目,而在微服务架构中,注册中心是其核心的基础服务之一。注册中心的作用是提供完善实现服务治理功能,而选择什么注册中心也是微服务项目架构中的一环。一、什么是注册中心 在现实生活中,当我们想要联系某一个人的时候,我们会拿出手机,打开通讯录,找到那个人的电话号码,然后拨出去,之后只要那个人接了电话,我们就可以通话了。其实,注册中心就相当于这个“...

xiaoyaGrace的博客 264

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

consul服务下线通知_Springcloud微服务注册中心之Consul

序言 现在市面上越来越多的企业采用分布式微服务来搭建项目,而在微服务架构中,注册中心是其核心的基础服务之一。注册中心的作用是提供完善实现服务治理功能,而选择什么注册中心也是微服务项目架构中的一环。一、什么是注册中心 在现实生活中,当我们想要联系某一个人的时候,我们会拿出手机,打开通讯录,找到那个人的电话号码,然后拨出去,之后只要那个人接了电话,我们就可以通话了。其实,注册中...

weixin_33940733的博客 817

Nestjs框架: 微服务注册中心架构设计与Consul实战

本文探讨微服务架构中注册中心的核心价值与技术实现。随着业务复杂度提升,传统直连模式无法满足高并发、高可用等需求,注册中心通过自动化服务注册与发现机制解决单点故障和动态扩展问题。文章分析了注册中心三大角色(Provider/Consumer/Registry)及其核心功能,对比了ZooKeeper、Consul、Eureka等主流方案的CAP特性和适用场景。以Consul为例,详细演示了Docker集群化部署配置,包括ACL安全加固和多节点集群搭建。最后结合NestJS框架,展示了服务注册与健康检查的具体代码

Wang的专栏 1842

微服务注册中心Eureka和Consul对比

一、Eureka不建议使用 在选型微服务注册中心时,一定要长远考虑,SpringCloud提供了Eureka作为服务注册中心,我们可以开箱即用,但是,对于服务注册中心随着业务需求的不断变化,对服务注册中心提出了更高要求,Eureka就不太适合了,看到“Eureka 2.0 开源工作宣告停止,继续使用风险自负”。 这意味着如果开发者继续使用作为 2.x 分支上现有工作 repo 一部分发布的代码...

零渡的博客 4699

Springcloud微服务注册中心之Consul

序言 现在市面上越来越多的企业采用分布式微服务来搭建项目,而在微服务架构中,注册中心是其核心的基础服务之一。注册中心的作用是提供完善实现服务治理功能,而选择什么注册中心也是微服务项目架构中的一环。一、什么是注册中心 在现实生活中,当我们想要联系某一个人的时候,我们会拿出手机,打开通讯录,找到那个人的电话号码,然后拨出去,之后只要那个人接了电话,我们就可以通话了。其实,注...

qq_39581763的博客 530

ZooKeeper、Eureka、Consul 、Nacos,微服务注册中心怎么选?

点击上方“芋道源码”,选择“设为星标”管她前浪,还是后浪?能浪的浪,才是好浪!每天 8:55 更新文章,每天掉亿点点头发...源码精品专栏原创 | Java 2020 超神之路,很肝~中...

芋艿V 3559

Go微服务: go-micro集成consul的注册中心和配置中心

1 )consul 集群 2 )consul 中设置mysql的配置文件 2 )common 核心代码参考 3 )main.go 核心代码

Wang的专栏 1464

微服务 注册中心的作用_微服务注册中心为什么推荐使用Consul?

一、Eureka不建议使用在选型微服务注册中心时,一定要长远考虑,SpringCloud提供了Eureka作为服务注册中心,我们可以开箱即用,但是,对于服务注册中心随着业务需求的不断变化,对服务注册中心提出了更高要求,Eureka就不太适合了,看到“Eureka 2.0 开源工作宣告停止,继续使用风险自负”。这意味着如果开发者继续使用作为 2.x 分支上现有工作 repo 一部分发布的代码库和工件...

weixin_39952182的博客 126

【微服务注册中心nacos与consul对比】

最终建议:新项目优先 Nacos(功能全面+易用),跨国/强一致场景选 Consul。健康检查 TCP/HTTP/MySQL 等多协议,支持自定义脚本 TCP/HTTP/gRPC/脚本,检查类型更丰富。架构 中心化架构,模块化设计(服务发现、配置管理分离) 客户端-服务器架构(Server/Client节点)动态推送 长轮询主动推送,实时性高(毫秒级) Watch 机制拉取,需客户端监听(秒级延迟)注册方式 自动注册(SDK 监听) + 手动注册 显式注册(HTTP API/SDK)

hzspace 915
上一篇: 枚举真的比静态常量更占空间吗?
下一篇: 微服务网关 Spring Cloud Gateway
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值