Service Discovery in Microservices 客户端/服务端服务发现

原文链接 Client Side Service Discovery in Microservices - GeeksforGeeks

原文链接 Server Side Service Discovery in Microservices - GeeksforGeeks

目录

服务发现介绍

Server-Side 服务发现

实例:

Client-Side 服务发现

实例:

服务发现介绍

服务发现(Service Discovery)就是通过服务名去找服务地址(如 IP和端口)的过程。

去哪里找?当然是去拥有服务器地址信息的组件中找, 这个组件就是 发现服务(Discovery Service)。

发现服务(Discovery Service)哪来的这些地址信息? 每一个微服务启动的时候主动注册上去的。

这些地址信息可以存在一个特定的map,list 或数据库里。

假设我们现在有一个 Service-A, 四个不同地址的Service-B,在启动的时候注册自己的IP和端口到 发现服务(Discovery Service)中, 则信息如下图所示。

当 Service-A 准备调用 Service-B时,首先请求发送到 load balancer(LB), 然后LB去发现服务(Discovery Service)查询 Service-B的地址,结果发现有四个 Service-B。LB只需要按照设置的算法分发给其中一个 Service-B。

具体算法可以看这篇 What is load balancing? 什么是负载均衡?-CSDN博客

Server-Side 服务发现

其实上面这种就是 服务端(Service-Side)的服务发现。具体步骤如下:

1,客户端(Service-A)向服务器发出请求,服务器可能是路由器(Router)、负载平衡器(Load Balancer)或中间人(Middleman)。在本例中,它是一个负载均衡器(Load Balancer)。

2,服务器(负载均衡器)使用发现服务(Discovery Service)执行查询。

3,发现服务(Discovery Service)响应负载均衡器(Load Balancer)可以调用的 Service-B 实例的可用数量。

4,然后负载均衡器服务器(Load Balancer) 拿起一个 Service-B 实例并进行调用。

5,这里,Service-A(客户端)不直接与发现服务(Discovery Service)通信。它调用另一个服务器(负载均衡器)来帮助发现Service-B的URL信息。

这个完整的模式我们称之为服务器端发现。

优点:

        在这种方法中,负载平衡器(Load Balancer)完成负载平衡的工作。这是这种方法的主要优点。毫无疑问,开发这种级别的抽象使服务消费者更加轻量级,因为它不需要处理查找过程。因此,不需要为服务消费者使用的每种语言和框架单独实现发现逻辑。

缺点:

        缺点是我们必须设置和操作负载平衡器(Load Balancer),除非部署环境已经提供了它。

实例:

        Nginx: Nginx是一个web服务器,也可以用作反向代理,负载均衡器,邮件代理和HTTP缓存。Nginx是一个免费的开源软件。
        AWS ELB:弹性负载平衡器(Elastic Load Balancer, ELB)是Amazon提供的一项服务,在该服务中,传入流量以提高速度和性能的方式在一组后端服务器之间高效、自动地分布。它有助于提高应用程序的可伸缩性并保护应用程序。        

Client-Side 服务发现

客户端的服务发现其实就是 Service-A想要调用Service-B,直接请求发现服务,发现服务返回Service-B的四个实例地址,然后负载均衡由客户端Service-A 决定。

优点:对于服务端来说,少了一个额外的跳跃(hop)。

缺点:客户端要自己实现Load Balancing 逻辑。

实例:

        Netflix Eureka:Eureka 是Netflix服务发现服务器和客户端。可以将服务器配置和部署为高可用性,每个服务器将已注册服务的状态复制到其他服务器。

        Zookeeper: Zookeeper是一个分布式、开源的分布式应用协调服务(coordination service)。它公开了一组简单的原语,用于实现用于同步、配置维护、分组和命名的高级服务。

        Consul: Consul是一个服务网络解决方案,用于自动执行网络配置、发现服务,并支持跨任何云或运行时的安全连接。

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

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

相关文章

基于Python深度学习的【猫狗宠物识别】系统设计实现

一、简介 宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【‘阿比西尼亚猫(Abyssinian)’, ‘孟加拉猫(Bengal)’…

不能通过 ip 直接访问 共享盘 解决方法

from base_config.config import OpenSMB, SMB import os, time, calendar, requests, decimal, platform, fs.smbfsinfo_dict SMB.EPDI_dict info_dict[host] (FS03,10.6.12.182) info_dict[direct_tcp] True# smb OpenSMB(info_dict)print(ok)# 根据 ip 查询电脑名 impor…

10篇--图像噪点消除

概念 何为噪点? 噪点:指图像收到的一些干扰因素,通常是由图像采集设备、传输信道等因素造成的,表现为图像中随机的亮度,也可以理解为有那么一些点的像素值与周围的像素值格格不入。 常见的噪声类型 高斯噪声&#…

科研绘图系列:R语言绘制网络图和密度分布图(network density plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载图1图2图3图4图5图6图7图8系统信息参考介绍 R语言绘制网络图和密度分布图(network & density plot) 加载R包 library(magrittr) library(dplyr) library(…

数据结构——ST表

ST表的定义 ST表,又名稀疏表,是一种基于倍增思想,用于解决可重复贡献问题的数据结构 倍增思想 这里列举一个去寻找一个区间内的最大值的例子 因为每次会将将区间增大一倍,所以才被称之为倍增思想 ,这种思想十分好用…

创建vue3项目步骤以及安装第三方插件步骤【保姆级教程】

🎙座右铭:得之坦然,失之淡然。 💎擅长领域:前端 是的,我需要您的: 🧡点赞❤️关注💙收藏💛 是我持续下去的动力! 目录 一. 简单汇总一下创建…

【PlantUML系列】部署图(七)

一、部署图的组成部分 节点(Node):使用node关键字定义一个节点,节点可以是服务器、数据库或其他硬件设备。组件(Component):使用component关键字定义一个组件,组件可以是软件模块或服…

【JAVA】旅游行业中大数据的使用

一、应用场景 数据采集与整合:全面收集旅游数据,如客流量、游客满意度等,整合形成统一数据集,为后续分析提供便利。 舆情监测与分析:实时监测旅游目的地的舆情信息,运用NLP算法进行智能处理,及…

大屏开源项目go-view二次开发3----象形柱图控件(C#)

环境搭建参考: 大屏开源项目go-view二次开发1----环境搭建(C#)-CSDN博客 要做的象形柱图控件最终效果如下图: 其实这个控件我前面的文章也介绍过,不过是用wpf做的,链接如下: wpf利用Microsoft.Web.WebView2显示html…

内网是如何访问到互联网(H3C源NAT)

H3C设备NAPT配置 直接打开29篇的拓扑,之前都配置好了 「模拟器、工具合集」复制整段内容 链接:https://docs.qq.com/sheet/DV0xxTmFDRFVoY1dQ?tab7ulgil 现在是出口路由器可以直接访问61.128.1.1,下面的终端访问不了,需要做NAPT源…

Linux高性能服务器编程中的TCP带外数据梳理总结

Linux高性能服务器编程中的TCP带外数据梳理总结 文章目录 Linux高性能服务器编程中的TCP带外数据梳理总结1.TCP 带外数据总结2.第五章带外数据send.crecv.c 3.第九章带外数据send.cselect.c 4.第十章带外数据send.csig_msg.c 1.TCP 带外数据总结 至此,我们讨论完了…

PyTorch3D 可视化

PyTorch3D是非常好用的3D工具库。但是PyTorch3D对于可用于debug(例如调整cameras参数)的可视化工具并没有进行系统的介绍。这篇文章主要是想介绍我觉得非常使用的PyTorch3D可视化工具。 1. 新建一个Mesh 从hugging face上下载一个glb文件,例…

C# 网络编程--关于UDP 通信(二)

UDP (User Datagram Protocol) 是一种无连接的传输层协议,主要用于支持数据报文的传输。它的主要特点包括简单、高效、不保证可靠性和顺序。 1.UDP协议基本概念 1.udp基于IP的简单的协议,不可靠的协议 2.优点:简单、 轻量化、 传输速度高、…

Axure高保真数据可视化大屏图表组件库

推出了一款高保真数据可视化大屏图表组件库,旨在为用户提供丰富的图表类型,使数据呈现更加直观、生动。本文将详细介绍该组件库中的各类图表元件,包括面积图、折线图、柱状图、条形图、圆环图、雷达图、仪表图以及综合类图表,以满…

基于视觉的3D占用网络汇总

综述文章:https://arxiv.org/pdf/2405.02595 基于视觉的3D占用预测方法的时间线概述: 自动驾驶中基于视觉的3D占用预测的分层结构分类 2023年的方法: TPVFormer, OccDepth, SimpleOccupancy, StereoScene, OccupancyM3D, VoxFormer, OccFormer, OVO, UniOcc, MiLO, Multi-…

一区向量加权算法优化INFO-CNN-SVM卷积神经网络结合支持向量机多特征分类预测

一区向量加权算法优化INFO-CNN-SVM卷积神经网络结合支持向量机多特征分类预测 目录 一区向量加权算法优化INFO-CNN-SVM卷积神经网络结合支持向量机多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现INFO-CNN-SVM向量加权算法优化卷积神经网络结…

渗透测试-前端验签绕过之SHA256

本文是高级前端加解密与验签实战的第1篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过SHA256签名来爆破登录。 绕过 通过查看源代码可以看到key为 1234123412341234通过查看源代码可以看到是通过SHA256来进行签名的&#xff0…

深入了解IPv6——光猫相关设定:DNS来源、DHCPv6服务、前缀来源等

光猫IPv6设置后的效果对比图: 修改前: 修改后: 一、DNS来源 1. 网络连接 来源: 从上游网络(如运营商)获取 IPv6 DNS 信息,通过 PPPoE 或 DHCPv6 下发。 特点: DNS 服务器地址直…

CentOS7下,hive4.0.0安装部署

hive安装部署 为了简单起见,都安装到node1服务器上。(集群:node1,node2,node3) 环境(已安装):Hadoop3.4.0,jdk-8u171 需要安装:MySQL8.4.3&…

burp(2)利用java安装burpsuite

BurpSuite安装 burpsuite 2024.10专业版,已经内置java环境,可以直接使用, 支持Windows linux macOS!!! 内置jre环境,无需安装java即可使用!!! bp2024.10下载…