注册中心的基础知识

什么是注册中心

    

  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…

脉冲变压器电感的工艺结构原理及选型参数总结

🏡《总目录》 目录 1,概述2,工作原理3,结构特点3.1,铁心结构3.2,铁心材料3.3,绕组4,工艺流程4.1,准备铁芯4.2,绕制线圈4.3,安装线圈4.4,固定线圈4.5,绝缘处理4.6,高压脉冲引出

rtt的IO设备框架面向对象学习-oopc实现特点

网上oopc实现方式都能搜得到,如oopc参考文章,rtt的oopc也是基本一样。大家好像都有个共识了: (1)定义类都用struct——这一过程就是抽象封装的过程,把属性和方法封装到struct里面,方法用函数指针变量表示&a…

前端向后端传入json 后台怎么接收(params呢)

目录 一、使用POJO若前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接收。后端实体类 二、使用Map接收后台Controller 三、使用RequestParams 1,params传参 2.地址拼接传参 当前端传来json数据时,后端有多种…

dji esdk开发(2)订阅实时视频流

文章目录 1、主要接口介绍1.1、订阅码流服务状态1.2、初始化、开始、和结束订阅码流1.2.1、订阅码流初始化1.2.2、开始码流传输1.2.3、停止码流传输1.3、设置负载相机码流源2、测试2.1、获取RGB图像2.1.1、解码部分2.1.2、完整测试代码如下2.2、目标检测并显示2.2.1、解码部分2…

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

文章目录 前言一、前序二、中序三、后序 前言 本文实现二叉树的前中后的非递归遍历,使用栈来模拟递归。 文字有点简略,需要看图和代码理解 树节点: 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 无法消除…

快速入门Kotlin①基本语法

前言 23年底读了一遍“Kotlin官方文档”,官方文档大而全,阅读下来,大有裨益。 此系列文章的目的是记录学习进程,同时,若能让读者迅速掌握重点内容并快速上手,那就再好不过了。 函数 带有两个 Int 参数、…

JDBC复习

JDBC 1.注册驱动 // new的这个driver具体选择: // 驱动版本8以上的,选择mysql.cj.jdbc.Driver // 以下得,选择mysql.jdbc.Driver DriverManager.registerDriver(new Driver())// 一般使用反射,来注册驱动,也便于直接…

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…

Android studio 简单入门程序

1. 创建一个新的 Android Studio 项目。 2. 在activity_main.xml布局文件中添加一个 TextView 控件&#xff0c;用于显示文本。 3. 在对应的 Activity 类&#xff08;例如 MainActivity.java&#xff09;中&#xff0c;获取 TextView 控件并设置文本内容。 以下是示例代码&…

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

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

Python爬虫之urllib库

1、urllib库的介绍 可以实现HTTP请求&#xff0c;我们要做的就是指定请求的URL、请求头、请求体等信息 urllib库包含如下四个模块 request&#xff1a;基本的HTTP请求模块&#xff0c;可以模拟请求的发送。error&#xff1a;异常处理模块。parse&#xff1a;工具模块&#x…

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;以提供全局视图。我们将研究最简单的…