微服务模式:服务发现模式

news2025/2/27 8:24:40

由于微服务应用的动态性,很难调用具有固定 IP 地址的服务。这就是服务发现的概念出现的背景。服务发现有助于客户端了解服务实例的位置。在这种情况下,服务发现组件将充当服务注册表。

服务注册表是一个包含服务实例位置的集中式服务器/数据库。在微服务设置中,服务会定期更新其在服务注册表中的位置。然后服务使用者可以连接到服务注册表并获取这些服务的位置。Netflix Eureka[1] 是一种流行的“应用级”开源服务注册表。

在服务发现中,有两种模式。

1.客户端端服务发现2.服务器端服务发现

客户端端服务发现

这涉及多个步骤。

d344b844a7640452548fa543be9c23f3.png
 

图 01 — 客户端端服务发现

1.将服务提供者实例的位置添加到服务注册表(自注册模式)。2.当服务消费者想要请求特定服务时,服务发现机制将查询服务注册表以获取可用服务提供者实例位置的列表。3.在从服务注册表中获取位置列表后,将其发送回服务消费者。4.最后,服务消费者将路由服务请求到其中一个服务提供者实例。

自注册模式

在自注册模式中,服务实例会在启动时向服务注册表注册自己(见图 01 — 步骤 01)。这会在服务注册表上发生,并且在关闭时取消注册。

服务实例可能会调用服务注册表的注册 API 来注册其网络位置。除此之外,服务注册表还会调用服务提供者实例的健康检查 API。

模式 2:服务器端服务发现模式

与客户端端服务发现模式不同,服务器端服务发现模式中,服务客户端会发出对 DNS 名称的请求,该名称会解析为查询服务注册表并负载均衡请求的平台请求路由器。

这种模式的主要优点是,与客户端端发现模式不同,服务发现的所有方面都完全由部署平台处理。这对于任何开发方来说都是一个主要优势和一个无忧无虑的方法。部署平台(例如 Kubernetes)具有内置的服务注册表和服务发现机制,以覆盖服务器端发现模式。

这种方法的唯一限制是,您会稍微耦合到用于服务注册表的部署平台上。例如,如果您使用 Kubernetes 作为部署平台,那么您基本上与 Kubernetes 耦合,以用于服务发现。如果您的其他服务组件也在 Kubernetes 上运行,这将不是问题。然而,如今大多数部署都在云原生 Kubernetes 容器化环境中进行,这不是一个主要限制。

dbb6f388011d317a2ee60ab85ac68476.png
 

图 02 — 服务器端服务发现模式

这涉及多个步骤。

1.服务实例通过 registrar(第三方注册模式)向服务注册表注册。2.服务客户端从 Router 获取服务网络位置,并 Router 从服务注册表查询请求。3.然后 Router 从可用的服务提供者实例中负载均衡请求。

第三方注册模式

在第三方注册模式(见图 02 — 步骤 02)中,与服务注册表的自注册不同,一个称为 registrar 的第三方负责注册。

引用链接

[1] Netflix Eureka: https://github.com/spring-cloud/spring-cloud-netflix

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

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

相关文章

Camera 信号波形状态及同步方式

方式一:解串器发出同步信号 主平台连接解串器(Deserializer)再连接四个摄像头模组,每个摄像头模组包含 Sensor 串行器。解串器产生帧同步信号 (FrameSync)传递给串行器,再传递给 Sensor&#x…

嵌入式IDE(2):KEIL中SCF分散加载链接文件详解和实例分析

在上一篇文章IAR中ICF链接文件详解和实例分析中,我通过I.MX RT1170的SDK中的内存映射关系,分析了IAR中的ICF链接文件的语法。对于MCU编程所使用的IDE来说,IAR和Keil用得比较多,所以这一篇文章就来分析一下Keil的分散文件.scf(scat…

geopandas 笔记:geometry上的操作汇总

如无特殊说明,数据主要来自:GeoDataFrame 应用:公园分布映射至subzone_UQI-LIUWJ的博客-CSDN博客 0 读入数据 subzone gpd.read_file(ura-mp19-subzone-no-sea-pl.geojson) subzone subzone_tstsubzone[0:5] subzone_tst subzone_tst.plot…

几十行C++代码生成自己的图片

背景:Kyle McCormick 在 StackExchange 上启动了一个名为 “Tweetable Mathematical Art” 的创意比赛。在这个挑战中,参与者必须在三条推文的长度内编写代码以创造一幅艺术图像。具体来说,每位参赛者需用 C 设计三个函数:RD、GR …

哪种股票可以T+0交易?

股票市场T+0交易制度是实现市场公平,解决市场多空方失衡的重要市场机制。随着中国证券市场的发展,机构投资者占比大幅提升,市场投资者理性程度不断增加,监管机制也日渐完善,恢复T+0交易制度将是…

专业的批量剪辑软件推荐,在哪可以免费下载?免费吗?

今天推荐一款适合广大短视频创作者使用的专业的批量剪辑软件,它叫做超级编导批量剪辑软件,进入超级编导官网就可以立即免费下载,同时该软件支持免费试用。 不管你是做电商带货种草视频、本地生活推广视频,还是企业拓客类的获客视频…

SpotBugs代码检查:instanceof总是返回true(BC_VACUOUS_INSTANCEOF)

https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#bc-instanceof-will-always-return-true-bc-vacuous-instanceof 使用instanceof判断的时候,总是返回true,除非被检测的结果是null。遇到这种告警,可能是写代码的人理解错误…

无涯教程-JavaScript - IMCSC函数

描述 IMCSC函数以x yi或x yj文本格式返回复数的余割。 复数的余割定义为正弦的倒数。即 余割(z) 1 /正弦(z) 语法 IMCSC (inumber)争论 Argument描述Required/OptionalInumberA complex number for which you want the cosecant.Required Notes Excel中的复数只是简单…

过滤和分页源码、接口文档、jwt介绍和构成、base64编码、drf-jwt使用

过滤和分页源码 补充 #### 为什么在视图类中配置一个过滤类,就能走-filter_backends [SearchFilter,MyFilter]-GenericAPIView:继承APIVIew的视图类,是不能这样配置的----》自己过滤-filter_backends api_settings.DEFAULT_FILTER_BACKEN…

TVjar生成踩坑记录

近期TVBox及其衍生品很火,其中,jar更是主力军 github上有相关源码。 因为github总是被墙,想着能不能自己生成呢 于是开始折腾。 1、下载仓库 以这个为例 仓库下载地址 2、尝试在电脑生成jar 直接运行 buildAndGenJar.bat 3、报错 各…

使用Spring Gateway为对象存储系统MinIo和kkFileView文档预览增加登录验证

文章目录 1、kkfileview下载部署1.1、安装包部署运行1.1.1、物理机或虚拟机上运行1.1.2、Docker容器环境环境运行 1.2、接入说明 2、使用Spring Gateway增加登录认证2.1、网关实现代码2.2、文件服务实现代码2.3、Demo运行效果 官网介绍:kkFileView为文件文档在线预览…

浅谈安科瑞智能操控装置在上海特斯拉工厂配电工程的应用

0.背景 Background 2018年10月17日,上海市临港管委会表示,特斯拉(上海)有限公司已成功摘得上海临港装备产业区Q01-05地块864885平方米(合计1297.32亩)的工业用地。2019年1月7日,位于上海东南一…

C动态分配

动态分布与静态发布: 静态分配 1、 在程序编译或运行过程中,按事先规定大小分配内存空间的分配方式。int a [10] 2、 必须事先知道所需空间的大小。 3、 分配在栈区或全局变量区,一般以数组的形式。 4、 按计划分配。 动态分配 1、在程序运…

Alins - 化繁为简、极致优雅的WebUI框架

最近造了个js框架 Alins,分享一下: 🚀 Alins: 最纯粹优雅的WebUI框架 English | 文档 | 演练场 | 更新日志 | 反馈错误/缺漏 | Gitee | 留言板 0 简介 0.1 前言 Alins是一款极致纯粹、简洁、优雅的Web UI框架。秉持0-API、Less is More 的…

替换滚珠螺杆需要了解哪些参数?

滚珠螺杆具有定位精度高、高寿命、低污染和可做高速正逆向的传动及变换传动等特性,因具上述特性,滚珠螺杆已成为近来精密科技产业及精密机械产业的定位及测量系统上的重要零组件之一。 众所周知,滚珠螺杆是可以替换的,不仅同品牌之…

概率论与数理统计学习笔记(7)——全概率公式与贝叶斯公式

目录 1. 背景2. 全概率公式3. 贝叶斯公式 1. 背景 下图是本文的背景内容,小B休闲时间有80%的概率玩手机游戏,有20%的概率玩电脑游戏。这两个游戏都有抽卡环节,其中手游抽到金卡的概率为5%,端游抽到金卡的概率为15%。已知小B这天抽…

步进电机基本结构原理了解一下

工作原理 步进电机驱动器根据外来的控制脉冲和方向信号, 通过其内部的逻辑电路,控制步进电机的绕组以一定的时序正向或反向通电,使得电机正向/反向旋转,或者锁定。 以1.8度两相步进电机为例:当两相绕组都通电励磁时&…

喜马拉雅 Redis 与 Pika 缓存使用军规

作者:喜马拉雅 董道光 宣言:缓存不是万金油,更不是垃圾桶!!! 缓存作为喜马拉雅至关重要的基础组件之一,每天承载着巨大的业务请求量。一旦缓存出现故障,对业务的影响将非常严重。因…

经销商沟通难题怎么破?破解之道看这里!

01 经销商:生产商的得力帮手,消费者的贴心管家 经销商是指在市场经济中,负责将生产商生产的产品或提供的服务转售给最终消费者的中间商。在现代商业环境中,经销商在产品分销链条中扮演着重要的角色,他们促进了产品的快…

Python 自然语言处理 文本分类 地铁方面留言文本

将关于地铁的留言文本进行自动分类。 不要着急,一步步来。 导入需要的库。 import numpy as np import pandas as pd import jieba # 分词 import re # 正则 from fnmatch import fnmatch # 通配符 from sklearn.preprocessing import LabelEncoder from sklearn…