微服务:服务发现

news2024/11/24 16:56:28

1. 服务发现

eureka、nacos、Consul、etcd 和 zk 都是主流的服务发现工具,而 Dubbo 和 Polaris Mesh 则是基于服务发现的 RPC 框架。

它们的主要区别在于:

eureka 是 Netflix 开源的一个服务发现组件,支持高可用和数据同步,具有简单、轻量、易上手等优点;
nacos 是阿里巴巴开源的一个服务发现和配置中心,功能强大、易于部署和集成,可以管理动态服务、配置和元数据信息;
Consul 是 HashiCorp 公司开发的服务发现和配置工具,支持多数据中心,提供强大的健康检查和 KV 存储功能;
etcd 是 CoreOS 公司开源的高可用的分布式键值存储系统,提供了一种可靠的方式用于存储和共享分布式系统的关键数据;
zk (ZooKeeper) 是 Apache 基金会的项目,是一个同时提供命名服务、配置管理、同步和分组服务等的分布式协调工具;
Dubbo 是阿里巴巴开源的高性能 RPC 框架,支持负载均衡、服务治理等功能;
Polaris Mesh 是腾讯开源的微服务平台,平台内部使用了 nacos 进行服务发现和服务注册,并提供了基于 istio 的 Service Mesh 功能。

它们都能满足 CAP 原理,但实现方式可能不一样:

eureka 使用的是 AP(可用性&分区容错性);
nacos 采用的是 AP+CP;
Consul 采用的是 CP(一致性&分区容错性);
etcd 采用的是 CP(一致性&分区容错性);
zk 采用的是 CP(一致性&分区容错性);
Dubbo 可以根据业务需求进行配置,支持 AP 和 CP;
Polaris Mesh 也可以根据应用场景进行调整,支持 AP 和 CP。
在这里插入图片描述

2.

Eureka、Nacos、Consul和etcd都是常见的分布式服务发现和注册组件,它们之间的主要区别在于以下几个方面:

  1. 数据一致性:Eureka采用的是弱一致性模型,即服务注册的信息会被延迟一段时间才会在整个集群中得到同步,因此可能会出现服务信息不同步的情况。而etcd、Consul采用的是强一致性模型,确保了集群中的所有节点都能够实时访问到最新的数据。

  2. 功能和扩展性:Nacos和etcd提供了更为丰富的服务治理功能,如流量管理、配置管理和动态DNS等,具有更好的扩展性和灵活性。而Eureka和Consul则比较轻量级,主要用来实现最基本的服务发现和注册功能。

  3. 服务发现方式:Eureka和Consul都采用了传统的客户端-服务端模式,即服务消费者会向服务注册中心查询可用服务地址列表,然后自己根据这些地址来决定调用哪些服务提供者。而Nacos除了支持客户端-服务端模式外,还支持服务端-服务端模式,即服务提供者也可以注册到Nacos集群中,并直接从Nacos中获取服务信息。etcd则提供了统一的Key-Value存储机制,可以用来实现服务注册和配置管理等功能。

服务发现默认时间根据不同的实现而有所不同。一般来说,Eureka和Consul的默认心跳时间都是30秒左右,即每30秒向注册中心发送一次心跳,如果超时则认为服务实例已经下线。Nacos的默认健康检测时间是5秒,并且可以通过参数进行配置。etcd的心跳时间默认为5秒,也可以通过参数进行配置。

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

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

相关文章

如何使用Linkage Mapper揭示栖息地变化的故事

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 文章目录 引言1.1 定义和作用1.2 Linkage Mapper的历史和发展2.1 揭示栖息地变化的重要性2.2 Linkage Mapper的优势和不足

Windows下载安装RocketMq

Windows下载安装RocketMq 下载安装包启动NAMESERVER 和 BROKER启动NAMESERVER启动BROKER 安装可视化插件 下载安装包 RockitMQ官网下载地址:https://rocketmq.apache.org/release-notes/ 解压到指定的文件夹下 先配置JAVA_HOME 配置ROCKETMQ_HOME环境变量 …

使用Maple的Python API :OpenMaple(Windows下的解决方案)

在Maple 2023(按照软件文档,Maple 2018及以上版本均适用;我目前测试的版本为2023)的安装目录下,有软件附带的解释器,如D:\Program Files\Maple 2023\Python.X86_64_WINDOWS\Python.exe。这一Python解释器的…

Python中NumPy库的相关操作

目录 NumPy库 常用操作 创建数组 数组属性 索引和切片 数组运算 数组重塑 NumPy库 NumPy(Numerical Python)是Python中常用的数值计算库,它提供了高性能的多维数组对象和对数组进行操作的函数。 1.多维数组对象(ndarray&…

Java 课程设计 —— 扫雷

一、团队课程设计博客链接: https://www.cnblogs.com/luomeili/p/10280310.html 二、个人负责模块或任务说明: 模块:文件操作 Minefield 类实现 三、自己的代码提交记录截图 四、自己负责模块或任务详细说明 1.Minefield 类实现 Minefie…

Java中的CountDownLatch和CyclicBarrier有什么作用?

在Java并发编程中,CountDownLatch和CyclicBarrier是两个非常有用的工具,它们可以帮助我们更加方便地进行线程通信和协作。在本文中,我将从面试的角度,详细讲解Java中的CountDownLatch和CyclicBarrier的概念、作用和实现方式&#…

基于卷积的图像分类识别(六):DenseNet FractalNet

系列文章目录 本专栏介绍基于深度学习进行图像识别的经典和前沿模型,将持续更新,包括不仅限于:AlexNet, ZFNet,VGG,GoogLeNet,ResNet,DenseNet,SENet,MobileN…

如何搭建自己的git服务器

GitHub,Gitee 想来大家都用过,我们的代码就是托管在这些平台上的。因此,你可能好奇为什么我们不自己搭建一个 git 呢服务器?下面,就开始教大家如何一步步搭建自己的 git 服务器(试验成功的那一刻还是很让人…

Java 中 ArrayList 和 LinkedList 有什么区别

在Java中,ArrayList和LinkedList是两种常见的集合类。它们都实现了List接口,提供了类似数组的功能,可以存储任意类型的对象。虽然它们都可以实现相同的功能,但是它们的底层实现方式有所不同,因此在性能和用途上也存在一…

dom4j解析XML文件

主要为了讲解Mybatis中如何用dom4j解析XML,这里当作dom4j解析.XML文件的练习 引入mybatis配置文件和一个.xml文件 都是.xml <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN…

【C++】| 04——STL | 容器_vector

系列文章目录 【C】| 01——泛型编程 | 模板 【C】| 02——STL | 初识 【C】| 03——STL | 迭代器 【C】| 04——STL | 容器_vector 文章目录 1. vector容器2. vector库2.1 迭代器相关函数2.1 ww 1. vector容器 vector 与 动态数组 相似&#xff0c;可以自动调节自身大小。元素…

基于SpringBoot的美容院管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SpringBoot 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录 一、项目简介 二、系…

Windows10中英文切换按钮消失?一招解决

目录 问题场景&#xff1a; 问题描述 原因分析&#xff1a; 解决方案&#xff1a; 1. 打开设置&#xff0c;选择时间和语言 2. 进入日期时间设置 3. 进入高级键盘设置 4. 勾选这个勾选框&#xff0c;问题解决 问题场景&#xff1a; 博主玩道德与法治V在线模式时&#…

BGP防环,路由反射器,BGP联盟

数据的出口是路由的入口 ospf内部&#xff1a;10 ospf外部&#xff1a;150 静态路由&#xff1a;60 RIP&#xff1a;100 BGP&#xff1a;255 当下一跳是0.0.0.0 表示的是自己 display bgp peer //查看bgp邻居表 display bgp routing-table //查看bgp数据库 display i…

WPF MaterialDesign 初学项目实战(3)动态侧边栏

其他文章 WPF MaterialDesign 初学项目实战&#xff08;0&#xff09;:github 项目Demo运行 WPF MaterialDesign 初学项目实战&#xff08;1&#xff09;首页搭建 WPF MaterialDesign 初学项目实战&#xff08;2&#xff09;首页导航栏样式 创建侧边栏实体类 新建MenuBar文件…

Python动物图像分割API简单调用实例演示,阿里达摩院视觉智能开放平台使用步骤

阿里云视觉智能开放平台 - 动物分割 效果图演示平台入口创建获取密钥本地图片转 URL 与密钥测试代码调用演示语义分割知识拓展阿里云达摩院智能视觉开放平台 效果图演示 调用本地图片处理后可以直接保存到本地&#xff0c;右边就是分割好的效果图&#xff0c;可以看到分割的效…

基于卷积的图像分类识别(五):ResNet ResNeXt

系列文章目录 本专栏介绍基于深度学习进行图像识别的经典和前沿模型&#xff0c;将持续更新&#xff0c;包括不仅限于&#xff1a;AlexNet&#xff0c; ZFNet&#xff0c;VGG&#xff0c;GoogLeNet&#xff0c;ResNet&#xff0c;DenseNet&#xff0c;SENet&#xff0c;MobileN…

C语言实现扫雷

总有一天你要一个人在暗夜中&#xff0c;向那座桥走过去 目录 一、文件及其对应代码 1.test.c 2.game.c 3.game.h 二、数组创建解析 1.创建两个数组的原因 2.预设数组较大的原因 三、计算周围雷的个数 四、向外扩展并延伸判断 扫雷游戏&#xff0c;相信大家都玩过&am…

【c++】图解类和对象(上)

类和对象&#xff08;上&#xff09; 文章目录 类和对象&#xff08;上&#xff09;一、面向过程和面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及封装1.访问限定符2.封装 五、类的作用域六、类的实例化七、类对象模型八、this指针总结 一、面向过程和面向对象…

Mysql中select语句的执行流程?

Mysql中select语句的执行流程&#xff1f; 答&#xff1a; SELECT 语句的执行过程为&#xff1a;连接、查询缓存、a词法分析&#xff0c;语法分析&#xff0c;语义分析&#xff0c;构造执行树&#xff0c;生成执行计划、执行器执行计划&#xff0c;下面开始梳理一次完整的查询…