注册中心的基础知识

什么是注册中心

    

  1. 当服务启动时,将服务信息服务名称/IP/端口写入注册中心.
  2. 注册中心接收服务端信息时保存服务信息,并且维护服务列表数据
  3. 当服务消费者启动时会通过IP:端口(注册中心)远程链接注册中心.

获取服务列表信息.缓存到本地

  1. 当消费者调用服务时,查找缓存到本地的服务列表信息.之后通过负载均衡机制挑选其中一个服务进行访问.
  2. 当后台服务器宕机时,由于注册中心有心跳检测机制.所以可以发现某台服务器宕机.之后更新自己的服务列表信息.之后广播给全部消费者.
  3. 当消费者获取服务列表的通知时,最终更新本地的服务列表数据.

注册中心的主要功能包括:

  1. 注册:应用程序组件可以将自己的信息注册到注册中心,注册包括提供的服务名称、IP地址、端口号等。

  2. 查询:应用程序组件可以通过查询注册中心来获取其他组件的信息,例如根据服务名称获取对应的IP地址和端口号。

  3. 发现:应用程序组件可以通过注册中心自动发现其他组件,而不需要硬编码它们的位置信息。

  4. 负载均衡:注册中心可以维护多个相同服务的实例,通过负载均衡算法将请求分发到不同实例上,实现负载均衡。

  5. 故障检测与恢复:注册中心可以检测应用程序组件的健康状态,当某个组件发生故障时,可以及时地从注册中心中移除该实例,以确保其他组件不会调用到不可用的服务。

      常见的Java注册中心包括ZooKeeper、Eureka、Consul等。在微服务架构中,注册中心是一个重要的基础设施,它可以提供服务发现、负载均衡和故障恢复等关键功能,帮助构建可扩展和弹性的应用程序。

 Zookeeper注册中心 

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

ZooKeeper包含一个简单的原语集,提供Java和C的接口。

ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

总结:zookeeper是服务的协调调度服务器!!!

Eureka注册中心 

    Eureka注册中心是Netflix开源的一个服务注册与发现的组件,用于建立和维护服务之间的依赖关系。它可以帮助微服务架构中的各个服务进行自动化注册和发现,实现服务之间的通信。Eureka注册中心通过维护一个服务的注册表来追踪可用的服务实例。当一个服务启动时,它会注册自己的实例到Eureka注册中心,当一个服务需要调用其他服务时,它可以从Eureka注册中心获取可用的服务实例列表来进行调用。 Eureka注册中心还具有负载均衡和故障恢复的功能,它可以自动检测到不可用的服务实例并从注册表中移除,同时还可以自动感知新添加的服务实例。Eureka注册中心采用了客户端-服务器架构,注册中心作为服务端,服务实例作为客户端进行注册和发现。

Nacos注册中心  

     Nacos是一个开源的动态服务发现、配置和管理平台。它提供了注册中心的功能,可以帮助应用程序、微服务和云原生平台实现服务注册和发现。

   使用Nacos注册中心,您可以将应用程序或微服务注册到Nacos中心,然后其他服务可以通过Nacos来发现并与之进行交互。

Nacos注册中心具有以下特点:

  1. 动态注册和发现:当有新的服务加入或退出时,Nacos能够动态地将其注册或注销,而不需要手动配置。

  2. 健康检查:Nacos提供了健康检查功能,可以定期检查注册的服务是否可用,并自动更新服务的可用状态。

  3. 多种服务发现方式:Nacos支持多种服务发现方式,包括DNS、HTTP和RPC等。

  4. 配置管理:Nacos不仅可以用作注册中心,还可以用来管理配置信息,可以实现动态配置更新和推送。

  5. 高可用和可靠性:Nacos支持集群部署,提供了高可用和可靠性的服务注册和发现功能。

总结 

  1. 定义:注册中心是一个集中的服务目录,它允许应用程序注册和发现服务。它充当了服务提供者和服务消费者之间的中介。

  2. 功能:注册中心提供了以下功能:

    • 服务注册:服务提供者将自己的服务注册到注册中心中,以便服务消费者可以发现并使用它们。
    • 服务发现:服务消费者从注册中心中获取服务提供者的信息,并与之建立通信。
    • 服务路由:注册中心可以根据负载均衡策略将请求路由到适当的服务提供者。
    • 服务监控:注册中心可以监控服务的状态和健康状况,以便及时发现和处理故障。
  3. 常见的Java注册中心:

    • ZooKeeper:ZooKeeper是一个高性能的分布式协调服务,可以用作Java应用程序中的注册中心。它提供了强一致性和可靠性,并支持动态注册和发现服务。
    • Consul:Consul是一个分布式服务发现和配置管理系统,可以用作Java应用程序的注册中心。它提供了服务注册和发现的功能,同时还支持健康检查和故障恢复。
    • Eureka:Eureka是Netflix开源的一个服务发现框架,可以作为Java应用程序的注册中心。它支持高可用性和扩展性,并提供了自动注册和发现服务的功能。
  4. 使用注册中心的好处:

    • 服务解耦:通过注册中心,服务提供者和服务消费者之间解耦,可以独立发布和更新。
    • 动态扩展:注册中心可以动态地添加和移除服务实例,以应对不同的负载需求。
    • 容错和故障恢复:注册中心可以监控服务的健康状态,并自动从不可用的服务提供者中剔除,以保证系统的可用性和稳定性。
    • 负载均衡:注册中心可以根据负载均衡策略将请求分发到不同的服务实例,以平衡系统的负载。

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

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

相关文章

Druid连接池的能力介绍与使用方法

Druid连接池的能力介绍与使用方法 本文将介绍druid连接池的能力:监控sql调用数据(慢sql、调用量、异常堆栈)、防止sql注入和数据库密码加密。 1. Druid连接池简介 Alibaba Druid官网使用手册里是这样介绍的:Druid连接池是阿里巴…

【电气安全】ASCP电气防火限流式保护器/末端回路线路保护

为什么要使用电气防火限流式保护器? 应急管理部消防救援局统计,在造成电气火灾事故的原因中,最为主要的当为末端线路短路,在电气火灾事故中占比高达70%以上。如何效预防末端线路短路引发的电气火灾事故? 现阶段最为常…

P2926 [USACO08DEC] Patting Heads S题解

题目 今天是贝茜的生日,为了庆祝自己的生日,贝茜邀你来玩一个游戏。 贝茜让N (1≤N≤) 头奶牛坐成一个圈。除了1号与N号奶牛外,i号奶牛与i−1号和i1号奶牛相邻。N号奶牛与1号奶牛相邻。农夫约翰用很多纸条装满了一个桶,每一张包…

按列值分组并横向全连接

按列值分组并横向全连接 原效果 处理效果 import pandas as pddef segmentation_col(df ,col_name):# 按列的值分组list_type df[col_name].unique()df_list []for item in list_type:df_list.append(df[df[col_name] item])# 并横向连接# 判断是否能连接if len(df_list) …

Java 自定义线程池实现

自定义线程池 简介任务图示阻塞队列 BlockingQueue<T>ReentrantLock代码 线程池 ThreadPool工作线程类 Worker 拒绝策略接口代码测试类 TestThreadPool为什么需要j i&#xff1f;&#xff08;lambad表达式相关&#xff09; 测试结果拒绝策略&#xff1a;让调用者自己执行…

【计算机网络篇】数据链路层(3)差错检测

文章目录 &#x1f95a;误码&#x1f354;两种常见的检错技术⭐奇偶校验⭐循环冗余校验&#x1f388;例子 &#x1f95a;误码 误码首先介绍误码的相关概念 &#x1f354;两种常见的检错技术 ⭐奇偶校验 奇校验是在待发送的数据后面添加1个校验位&#xff0c;使得添加该校验…

谷粒商城 分布式组件

1.成功启动人人开源前端项目和后端项目联调 RefreshScope //动态从配置中心获取配置

LeetCode Python - 71. 简化路径

目录 题目描述解法运行结果 题目描述 给你一个字符串 path &#xff0c;表示指向某一文件或目录的 Unix 风格 绝对路径 &#xff08;以 ‘/’ 开头&#xff09;&#xff0c;请你将其转化为更加简洁的规范路径。 在 Unix 风格的文件系统中&#xff0c;一个点&#xff08;.&…

数学(算法竞赛、蓝桥杯)--快速幂

1、B站视频链接&#xff1a;G01 快速幂_哔哩哔哩_bilibili 题目链接&#xff1a;P1226 【模板】快速幂 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include <bits/stdc.h> using namespace std; typedef long long LL; int a,b,p; int quickpow(LL a,int n,int p){…

前缀和(一)

前缀和 一维前缀和数组 假设有一个数组为a [ n ] , 另一个数组为s [ n ] . 其中 s [ j ] a[1] a[ 2 ] ......a[ j-1] a [ j ] 。--->s[ j ]表示a数组从第一个元素到第 j 个元素之和&#xff0c;那么我们则就称 s 数组为前缀和数组 例题&#xff1a;前缀和 链接&#xff1a;…

百度快速上首页霸屏秒收蜘蛛池程序,网络推广效果超好

百度快速进入首页&#xff0c;霸屏&#xff0c;秒收蜘蛛池程序。 是一个网络推广效果极佳的节目。 是一款适合百度的优化程序 当你进来阅读这篇文章时&#xff0c;蜘蛛池的概念对你来说可能还比较陌生。 既然您阅读了这篇文章&#xff0c;说明您对网络推广有了一定的兴趣。 无…

ssm002学院党员管理系统+jsp

鄂尔多斯应用技术学院党员管理系统的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对鄂尔多斯应用技术学…

Maven高级-聚合与继承 私服(图文并茂)

文章目录 一、分模块开发与设计1. 分模块开发的意义问题导入 模块拆分原则2. 分模块开发&#xff08;模块拆分&#xff09;问题导入2.1 创建Maven模块2.2 书写模块代码2.3 通过maven指令安装模块到本地仓库&#xff08;install指令&#xff09; 二、依赖管理1. 依赖传递问题导入…

linux前期配置

电脑端 ~目录下创建一个用于共享的nfs文件夹 mkdir nfs 配置互通文件权限 按照第八行配置 两个网络适配器 1.NET 2.桥接 编辑--->虚拟网络编辑器 开始这样 点更改设置后会有另一个连接出现 设置静态地址 在这个目录下些下这个 ip是设置的静态ip&#xff0c;用…

AVL树(靠平衡因子判断翻转的二叉搜索树)

之前我们在学习set和map的时候说&#xff0c;他们的底层数二叉搜索树&#xff0c;其实这是不准确的&#xff0c;准确的来说他应该是AVL树 那么什么事AVL树呢啊&#xff1f; 但是二叉搜索树有其自身的缺陷&#xff0c;假如往树中 插入的元素有序或者接近有序&#xff0c;二叉搜索…

深度学习pytorch——多分类问题(持续更新)

回归问题 vs 分类问题&#xff08;regression vs classification&#xff09; 回归问题&#xff08;regression&#xff09; 1、回归问题的目标是使预测值等于真实值&#xff0c;即predy。 2、求解回归问题的方法是使预测值和真实值的误差最小&#xff0c;即minimize dist(p…

数据结构与算法4-冒泡排序

文章目录 1. 认识冒泡排序2. 图示2.1 图示12.2 图示2 3. 代码 1. 认识冒泡排序 双层for循环&#xff0c;每次选出最大的数“浮”到数组的最后面&#xff1b;时间复杂度O( n 2 n^2 n2)&#xff0c;空间复杂度O(1);重复地遍历待排序的数列&#xff0c;一次比较两个元素&#xff…

【吊打面试官系列】Redis篇 -Redis 集群会有写操作丢失吗?为什么?

大家好&#xff0c;我是锋哥。今天分享关于 【Redis 集群会有写操作丢失吗&#xff1f;为什么&#xff1f;】 面试题&#xff0c;希望对大家有帮助&#xff1b; Redis 集群会有写操作丢失吗&#xff1f;为什么&#xff1f; Redis 并不能保证数据的强一致性&#xff0c;这意味这…

你可敢信这是 AI 写的歌?suno 真的惊到我了!

你可敢信这是 AI 写的歌&#xff1f;suno 真的惊到我了&#xff01; AI 音乐平台 suno 横空出世&#xff0c;效果惊人&#xff0c;我赶紧试了一下&#xff0c;amazing&#xff01;&#xff01;&#xff01; suno创作 - 背叛 这是我随意创作的&#xff0c;这几天对诅咒前男友那首…

②零基础MySQL数据库-MySQL约束

作用 表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性&#xff0c;比如用户表有些列的值&#xff08;手机号&#xff09;不能为空&#xff0c;有些列的值&#xff08;身份证号&#xff09;不能重复 分类 主键约束(primary key) PK 自增长约束(auto_increme…
最新文章