注册中心的基础知识

什么是注册中心

    

  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.mzph.cn/news/766608.shtml

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

相关文章

XSS一-WEB攻防-XSS跨站反射型存储型DOM型标签闭合输入输出JS代码解析

演示案例: XSS跨站-输入输出-原理&分类&闭合XSS跨站-分类测试-反射&存储&DOM #XSS跨站-输入输出-原理&分类&闭合 漏洞原理:接受输入数据,输出显示数据后解析执行 基础类型:反射(非持续),存储(…

LinuxYUMVimg++/gccgdbGit使用

前言 大家好,我是jiantaoyab,前面的文章给大家介绍了Linux的基础命令和权限,学会了命令行的模式使用Linux,今后要开始在Linux上写代码了,在这篇文章将介绍YUM、vim、gdb、git等常用的工具。 先来看看Linux如何安装软…

怎么拆解台式电脑风扇CPU风扇的拆卸步骤-怎么挑

今天我就跟大家分享一下如何选购电脑风扇的知识。 我也会解释一下机箱散热风扇一般用多少转。 如果它恰好解决了您现在面临的问题,请不要忘记关注本站并立即开始! 文章目录列表:大家一般机箱散热风扇都用多少转? 机箱散热风扇选择…

linux centos 安装jenkins,并构建spring boot项目

首先安装jenkins,使用war包安装,比较简单,注意看下载的版本需要的JDK版本,官网下载https://www.jenkins.io/download/ 把下载好的war包放到服务器上,然后运行,注意8080端口的放行 # 前台运行并指定端口 ja…

数据结构 - 二叉树非递归遍历

文章目录 前言一、前序二、中序三、后序 前言 本文实现二叉树的前中后的非递归遍历,使用栈来模拟递归。 文字有点简略,需要看图和代码理解 树节点: typedef char DATA; //树节点 typedef struct Node {DATA data; //数据struct Node* left…

嵌入式仿真平台

嵌入式仿真实验教学平台 (puliedu.com) 这个平台可以写代码,元件拖一下就行,但是就是用的是标准库,自己一般写的hal库程序用不了,但是新手用还是可以的

I2C系列(三):软件模拟I2C读写24C04

一.目标 PC 端的串口调试软件通过 RS-485 与单片机通信,控制单片机利用软件模拟 I2C 总线对 EEPROM(24C04) 进行任意读写。 二.RS-485简述 在工业控制领域,传输距离越长,要求抗干扰能力也越强。由于 RS-232 无法消除…

CSS3 中的盒模型:标准与IE盒模型的差异

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

2、Jenkins持续集成-gitlab安装和源码上传

文章目录 1、Gitlab代码托管服务器安装2、源代码上传托管 环境&资源准备 统一采用VMware中安装CentOS7,安装教程,统一设置静态IP资源包都存在于我的资源里面 资源版本&位置 名称机器IP软件代码托管服务器192.168.2.100Gitlab-12.4.2持续集成服…

Polar 2024春季个人挑战赛 Jay17 WP

Polar 2024春季个人挑战赛 Rank&#xff1a;7 【WEB】机器人 开题 起手敏感文件robots.txt 【WEB】PHP反序列化初试 最简单的php反序列化 POC&#xff1a; <?php class Easy{public $name;public function __wakeup(){echo $this->name;} } class Evil{public $evi…

手机实时监控电脑屏幕(手机可以看到电脑在干什么吗)

已经2024年了&#xff0c;假如你还在问我&#xff0c;手机可以看到电脑在干什么吗&#xff0c;有没有手机实时监控电脑屏幕的系统。 那么证明&#xff0c;你可能已经out 了。 现代科技告诉发展的态势下&#xff0c;这种技术已经很成熟了。 域智盾软件就可以实现这种效果↓我们…

Chapter 2. A simple interconnection network

A Simple Interconnection Network 一个简单的互连网络 2.1 网络规范和约束2.2 拓扑2.3 路由2.4 流量控制2.5 路由器设计性能分析 A Simple Interconnection Network 一个简单的互连网络 我们将研究简单互连网络的架构和设计&#xff0c;以提供全局视图。我们将研究最简单的…

【数据结构初阶】之堆(C语言实现)

数据结构初阶之堆&#xff08;C语言实现&#xff09; &#x1f30f; 堆的概念&#x1f30f; 堆的模拟实现&#x1f413; 堆的结构和方法接口&#x1f413; 堆的方法的模拟实现&#x1f64a; 堆的初始化&#x1f64a; 堆的构建&#x1f64a; 堆的插入&#x1f64a; 向上调整&…

【SysBench】OLTP 基准测试示例

前言 本文采用 MySQL 沙盒实例作为测试目标&#xff0c;使用 sysbench-1.20 对其做 OLTP 基准测试。 有关 MySQL 沙盒的更多信息&#xff0c;请参阅 玩转 MySQL Shell 沙盒实例&#xff0c;【MySQL Shell】6.8 AdminAPI MySQL 沙盒 。 1、部署一个 MySQL 沙盒实例 使用 mysq…

指尖论文怎么用 #经验分享#学习方法

指尖论文是一款优秀的论文写作、查重降重工具&#xff0c;被广泛认可为高效、可靠、方便的辅助工具。那么&#xff0c;如何正确地使用指尖论文呢&#xff1f; 首先&#xff0c;用户需要注册一个指尖论文的账号&#xff0c;并登录到平台上。注册过程非常简单&#xff0c;只需要输…

瑞芯微RK3576|触觉智能:开启科技新篇章

更多产品详情可关注深圳触觉智能官网&#xff01; “瑞芯微&#xff0c;创新不止步&#xff01;”——全新芯片RK3576即将震撼登场。指引科技风潮&#xff0c;创造未来无限可能&#xff01;这款芯片在瑞芯微不断创新和突破的道路上&#xff0c;不仅是对过往成就的完美延续&…

V R元宇宙平台的未来方向|V R主题馆加 盟|游戏体验馆

未来&#xff0c;VR元宇宙平台可能会呈现出以下发展趋势和可能性&#xff1a; 全面融合现实与虚拟世界&#xff1a; VR元宇宙平台将更加无缝地融合现实世界和虚拟世界&#xff0c;用户可以在虚拟环境中进行各种活动&#xff0c;与现实世界进行互动&#xff0c;并且体验到更加逼…

FileZilla 链接服务器提示 20 秒连接超时

FileZilla 有个默认设置是如果 20 秒没有数据的话会自动中断链接。 Command: Pass: **************** Error: Connection timed out after 20 seconds of inactivity Error: Could not connect to server修改配置 这个配置是可以修改的&#xff0c;修改的步骤为&#xff1a; …

数据可视化-ECharts Html项目实战(5)

在之前的文章中&#xff0c;我们学习了如何设置滚动图例&#xff0c;工具箱设置和插入图片。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢 数据可视化-ECharts…

Vue3 + Django 前后端分离项目实现密码认证登录

1、功能需求 通常中小型前后端项目&#xff0c;对安全要求不高&#xff0c;也可以采用密码认证方案。如果只用django来实现非常简单。采用 Vue3 前后端分离架构&#xff0c;实现起来稍繁琐一点&#xff0c;好处是可以利用各种前端技术栈&#xff0c;如element-plus UI库来渲染…