服务注册与发现原理

news2024/11/15 9:33:47

一、什么是服务注册与发现?

        服务注册与发现就是一套管理微服务的组件,方便各拆分的服务平滑上线和下线,以及某个服务出现故障自动剔除。其实质就是维护一张记录各在线服务的表。让消费服知道服务在线可以请求。。。。。。

二、服务注册与发现原理图(粗糙草图)

1.服务注册: 当A1服务上线启动时,它需要自动调用服务注册与发现中心将当前服务器的信息注册到服务注册与发现中心, 此时服务注册与发现中心便将A1服务信息记录在表中。

2.服务健康检查:服务注册与发现中心会定时(注册时设定检查间隔以及检查请求的路径)请求服务A1的健康检查接口,以确定A1服务是否可用,如果发现服务不可用,那么就会在表中剔除A1服务。 当然,如果因为某些原因手动杀死A1服务进程,A1服务需要通过检测自动调用反注册接口,自动请求服务注册与发现中心剔除表中的信息。

注意,A1服务、A2服务是相同的服务功能,多个相同服务是用于负载或某个挂掉还有替补。

3.用户发起请求: 当用户向网站发起请求,请求达到消费服,消费服判定用户需要A服务获取数据,那么消费服首先不会直接去请求 A1或A2服务,而是先通过第4步,去服务注册月发现中心 获取A服务列表,第5步,返回A服务的服务列表,返回了A1、A2服务,而A3因为某些原因宕机了,不能使用,那么就可以做到,用户在请求后至少保证至少线上有服务器能处理请求。当然你要说所有的服务都宕机了,那么我也没有可反驳的。

6.请求A服务:因为服务注册与发现中心已经返回了可用的服务列表,那么就可以通过算法取一个服务进行处理返回结果给客户端。

当然服务注册与发现中心不仅仅只是处理如上这些,比如多个服务它能根据负载均衡算法(轮询、权重轮询、等等)给返回某一个可用的服务、限流、降级、链路日志记录

三、各服务

        各个服务除了提供某一类服务处理外需要提供如下功能:

        1.服务启动时,向服务注册与发现中心提交注册。

        2.提供健康检查接口,用于服务注册与发现中心与服务保持心跳检查,确定服务是可用的。至于检查频率、检查接口路径都是在服务注册时提供 参数给到了 服务注册与发现中心的。

        3.服务自身进程被杀死时,需要先调用请求服务注册与发现中心主动剔除表中当前服务信息。

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

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

相关文章

SQL限制

SQL限制目录概述需求:设计思路实现思路分析1.URL管理参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive. happy…

PLL实验

PLL实验 开发板上面只有一个200MHz时钟输入,对于其它频率的时钟怎么办? 介绍 其实在很多 FPGA 芯片内部都集成了 PLL ,其他厂商可能不叫 PLL ,但是也有类似的功能模块,通过 PLL 可以倍频分频,产生其他很…

pytorch搭建yolov3网络

yolov3的整体网络结构 主要包含了两个部分。左边的Darknet-53主干特征提取网络主要用于提取特征。右边是一个FPN金字塔结构。 主干特征提取网络(提取特征) import math from collections import OrderedDict import torch.nn as nn#------------------…

MySQL事务相关知识

实践阅读:一文彻底读懂MySQL事务的四大隔离级别 1、什么是事务? 数据库事务(简称:事务),是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成,这些操作要么全…

AcWing 4645. 选数异或(预处理小区间 + 二分优化找)

题目如下: 题解 or 思路 在 [l,r][l, r][l,r] 区间内找到两个数 a,ba, ba,b 使得 a ^ b x 通过异或的性质: a ^ b ^ b x ^ b > a x ^ b 我们可以通过 b 可以迅速找到 a, a x ^ b 我们可以现预处理出所有小区间(大区间可以不需要,因为…

win11怎么分回c盘空间

有网友反映自己的win11系统有多个分区,c盘分区的空间比较小,便想通过win11分盘功能,将临近的磁盘空间分给c盘。那么win11怎么分回c盘空间?下面就教下大家win11将其他盘空间分回c盘的方法步骤。 工具/原料: 系统版本&am…

最近几年-基于深度学习自然语言处理的推荐系统-必读论文整理分享

基于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用…

02-JVM堆里面的分区:Eden,survival (from+ to),老年代,各自的特点?

1.模型 堆里面分为新生代和老生代(java8 取消了永久代,采用了 Metaspace),新生代包含 EdenSurvivor 区,survivor 区里面分为 from 和 to 区. 内存回收时,如果用的是复制算法,从 from 复制到 to…

项目实战之旅游网(十三)前台产品详情 前台收藏

目录 一.前台产品详情 1.查询产品 2.收藏按钮 二.前台收藏 本章的代码会统一放到最后。 一.前台产品详情 1.查询产品 即点击“查看详情”即可得到这个产品的详细描述。 并且项目运行起来之后,可以在后台新建新的产品,在前台可以实时查询到。 2.…

C工程与寄存器封装

目录 一、C语言工程简介 二、启动代码分析 三、C语言实现LED 四、寄存器的封装方式 五、寄存器操作的标准化 六、流水灯 一、C语言工程简介 先将工程模板解压 include里是.h文件 src里是.c文件 start里面是.s启动文件 ## NAME interface CROSS_COMPILE arm-no…

Fusion360 外壳开孔零件居中对齐的方法

DIY时需要根据从市场上采购的成品盒子进行开孔,通过3维软件进行开孔设计是比较方便的。Solidworks由于版权问题不易采用,Fusion360的个人版由于软件差异不像Solidworks方便约束定位。我通过尝试找到了适用方法。 先看成果。在一块板上居中位置开孔以便安…

电子学会2020年9月青少年软件编程(图形化)等级考试试卷(三级)答案解析

目录 一、单选题(共25题,每题2分,共50分) 二、判断题(共10题,每题2分,共20分) 三、编程题【该题由测评师线下评分】(共3题,共30分) 青少年软件…

阶段性回顾(4)与四道题目

TIPS 1. 当创建数组的时候,如果没有指定数组的元素个数也没关系,编译器会根据你初始化的内容来自行确定。 2. 在逻辑表达式当中,如果为真,就以1作为结果,如果为假,就以0作为结果。 3. 输入字符串的时候&…

VUE实例的组件的生命周期和数据共享和ref的使用方法(建议直接看ref)

目录VUE实例的组件的生命周期和数据共享组件间的数据共享ref的使用方法使用ref操作dom使用ref引用组件this.$nextTick(cb)方法的使用VUE实例的组件的生命周期和数据共享 生命周期和生命周期函数 这个是我学校vue书籍阿里云盘地址,有需要可以点击看看 生命周期(Life…

对Java中异常的认识

文章目录一、异常的概念与体系结构1.异常的概念2.异常的体系结构3.异常的分类二、异常的处理1.防御式编程2. 异常的抛出3.异常的捕获4.异常处理流程总结三、自定义异常类一、异常的概念与体系结构 1.异常的概念 在生活中,当我们发现朋友表现出不舒服的情况&#x…

LabVIEW ​​单​进程​共享​变量​与​​全局​变量

LabVIEW ​​单​进程​共享​变量​与​​全局​变量 单​进程​共享​变量​与​LabVIEW​全局​变量​相似。​事实​上,​单​进程​共享​变量​的​实现​是在​LabVIEW​全局​变量​的​基础​上​增加​了​时间​标识​功能。 ​为了​比较​单​进程​…

《终身成长》读书笔记

文章目录书籍信息思维模式思维模式解析关于能力和成就的真相体育:冠军的思维模式商业:思维模式和领导力人际关系:关于相处的思维模式父母、老师与教练:思维模式的传播改变思维模式书籍信息 书名:《终身成长》 作者&am…

Java算法_LeetCode26:删除排序数组中的重复项

LeetCode26:删除排序数组中的重复项 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度&a…

设计模式-责任链模式之**动态配置责任链**

正在参加2022年度博客之星评选,大家帮我点个五星好评。有投必会 责任链的优势劣势我就不说,百度上很多。 1、怎么:动态配置责任链 通过配置文件yml来指定你的责任链的执行顺序。 地址 配置文件如何配置,怎么读取 为什么&#x…

HTTP协议详解 - 通过C++实现HTTP服务剖析HTTP协议

前言 C/C程序员一般很少会接触到HTTP服务端的东西,所以对HTTP的理解一般停留在理论。 本文章实现通过C实现了一个http服务,可以通过代码对HTTP协议有更深的理解,并且通过抓包工具对HTTP协议进行更为详细的分析。 HTTP协议简介 HTTP(hypert…