SpringCloud分布式开发五大神兽

2023-11-11

SpringCloud分布式开发五大神兽

  • 服务发现——Netflix Eureka

  • 客服端负载均衡——Netflix Ribbon

  • 断路器——Netflix Hystrix

  • 服务网关——Netflix Zuul

  • 分布式配置——Spring Cloud Config

1 Eureka

官网:https://cloud.spring.io/spring-cloud-netflix/

1.1 Why Eureka?

Why Eureka?

1) Eureka来自生产环境

2) Spring Cloud对Eureka支持很好

3) Eureka 项目相当活跃,代码更新相当频繁

1.2 Eureka简介

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Spring Cloud将它集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务发现功能。

1.3 Eureka 原理

     讲解案例的调用关系:

上图是来自Eureka官方的架构图,大致描述了Eureka集群的工作过程。由于图比较复杂,可能比较难看懂,这边用通俗易懂的语言翻译一下:
 
- Application Service 就相当于服务提供者(用户微服务),Application Client就相当于服务消费者(电影微服务);
- Make Remote Call,可以简单理解为调用RESTful的接口;
- us-east-1c、us-east-1d等是zone,它们都属于us-east-1这个region;
 
由图可知,Eureka包含两个组件:Eureka Server 和 Eureka Client。
 
Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
 
Eureka Client是一个Java客户端,用于简化与Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。
 
在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
 
Eureka Server之间将会通过复制的方式完成数据的同步。
 
Eureka还提供了客户端缓存的机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。
 
综上,Eureka通过心跳检测、健康检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。

 

Region和Zone的关系 

1.4 实现一个Eureka Server

1)创建项目,配置spring-cloud-starter-eureka-server的依赖

2)在项目启动类上加注解@EnableEurekaServer

3)配置application.yml的配置文件

 

1.5 如何将微服务注册到Eureka上?

1)在微服务中配置Eureka的依赖

2)在启动类上添加@EnableEurekaClient注解

3)在application.yml添加Eueaka的配置

 

未完,待续。。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringCloud分布式开发五大神兽 的相关文章

  • Java中字符串中特殊字符的替换

    Java中如何替换字符串 E g String a adf sdf 如何替换和避免特殊字符 您可以删除除此之外的所有字符可打印的 ASCII 范围 http en wikipedia org wiki ASCII ASCII printab
  • Java - 为什么不允许 Enum 作为注释成员?

    It says 原始 String Class an Enum 另一个注释 上述任何一个的数组 只有这些类型才是合法的 Annotation 成员 为什么泛型 Enum 不能成为 Annotation 的成员 例如 Retention Re
  • Hibernate注解放置问题

    我有一个我认为很简单的问题 我见过两种方式的例子 问题是 为什么我不能将注释放在字段上 让我举一个例子 Entity Table name widget public class Widget private Integer id Id G
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • 使用 JPA Criteria API 进行分页的总行数

    我正在系统中为实体实现 高级搜索 功能 以便用户可以使用该实体的属性上的多个条件 eq ne gt lt 等 来搜索该实体 我正在使用 JPA 的 Criteria API 动态生成 Criteria 查询 然后使用setFirstResu
  • 这个函数(for循环)空间复杂度是O(1)还是O(n)?

    public void check 10 for string i list Integer a hashtable get i if a gt 10 hashtable remove i 这是 O 1 还是 O n 我猜测 O n 但不是
  • Java:迭代 Collection 的最佳方法(此处为 ArrayList)

    今天 当我看到一段我已经使用了数百次的代码时 我很高兴地开始编码 迭代集合 此处为 ArrayList 出于某种原因 我实际上查看了 Eclipse 的自动完成选项 这让我想知道 在什么情况下以下循环比其他循环更好使用 经典的数组索引循环
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • Java AES 128 加密方式与 openssl 不同

    我们遇到了一种奇怪的情况 即我们在 Java 中使用的加密方法会向 openssl 生成不同的输出 尽管它们在配置上看起来相同 使用相同的键和 IV 文本 敏捷的棕色狐狸跳过了懒狗 加密为 Base64 字符串 openssl A8cMRI
  • 比较两个文本文件的最快方法是什么,不将移动的行视为不同

    我有两个文件非常大 每个文件有 50000 行 我需要比较这两个文件并识别更改 然而 问题是如果一条线出现在不同的位置 它不应该显示为不同的 例如 考虑这个文件A txt xxxxx yyyyy zzzzz 文件B txt zzzzz xx
  • 如何安全地解决这个 Java 上下文类加载器问题?

    我的数百名用户中只有一位在启动我的 Java 桌面应用程序时遇到问题 他只有大约三分之一的时间开始 另外三分之二的时间在启动时抛出 NullPointerException Exception in thread AWT EventQueu
  • 使用 AES SecretKey 的 Java KeyStore setEntry()

    我目前正在 Java 中开发一个密钥处理类 特别是使用 KeyStore 我正在尝试使用 AES 实例生成 SecretKey 然后使用 setEntry 方法将其放入 KeyStore 中 我已经包含了代码的相关部分 The KS Obj
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • react-native run-android 失败并出现错误:任务 ':app:dexDebug' 执行失败

    我使用的是 Windows 8 1 和react native cli 1 0 0 and react native 0 31 0 添加后react native maps对于该项目 我运行了命令react native upgrade并给
  • Cucumber Java 与 Spring Boot 集成 - Spring @Autowired 抛出 NullPointer 异常

    我正在为 Spring boot 应用程序编写 cucumber java 单元测试来测试每个功能 当我与 Spring Boot 集成时 Autowired 类抛出 NullPointer 异常 Spring Boot应用程序类 Spri
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import

随机推荐

  • 递归和循环的区别

    针对需要重复地多次计算相同的问题 通常可以选择递归或者循环两种不同的方法 递归是在一个函数的内部调用这个函数本身 循环是通过设置计算的初始值及终止条件 在一个范围内重复计算 我们以计算1 2 3 n为例 我们可以采用递归和循环两种方式求出结
  • 三菱plc pwm指令_【三菱PLC指令教程】步进指令STL和RET(单序列状态转移图编程)

    戳上方 蓝字 PLC课程 关注我们哦 一 状态继电器 状态继电器 S 是PLC内部软继电器的一种 它和输入继电器 X 和输出继电器 Y 一样 有无数对常开触点和常闭触点 如不作步进状态软元件 可作一般的辅助继电器 M 使用 FX2N系列PL
  • CSS的盒模型

    盒子模型 Box Modle 可以用来对元素进行布局 包括内边距 边框 外边距 和实际内容这几个部分 盒子模型分为两种 第一种是W3C标准的盒子模型 标准盒模型 第二种IE标准的盒子模型 怪异盒模型 标准盒模型与怪异盒模型的表现效果的区别之
  • IPD流程介绍

    IPD体系中最重要的三大流程是市场管理流程 需求管理流程和集成产品开发流程 关系如图 图来自网上 尽量把三个流程的活动讲清楚 包括每个流程的活动的细节 运用的工具或方法等 1 MM流程 2 需求管理流程 3 集成产品开发流程
  • Oracle:错误码ORA-28040 的坑

    一 背景 因项目要求 第一次部署了Oracle 12 C的Server Linux CentOS版 数据库装好之后部署一个Java Web项目 A项目 去连接数据库 该Java项目之前用的Oracle是11 g版本 这次换成了12 C的版本
  • 使用docker方式安装FastDFS

    FastDFS 架构包括 Tracker server 和 Storage server 客户端请求 Tracker server 进行文件上传 下载 通过 Tracker server 调度 最终由 Storage server 完成文件
  • 时钟天气小插件显示没服务器,天气时钟小插件大全

    有没有好用的天气时钟插件 首先右击桌面选排列图标 勾选显示桌面图标 2 如果故障依旧 打开任务管理器 按下 Ctrl Alt Del 组合键即可打开 点击 文件 新建任务 在打开的 创建新任务 对话框中输入 explorer 单击 确定 按
  • windows docker wsl2的docker内存占用大

    windows docker wsl2的docker内存占用大 1重启wsl2 最终采用 实测直接stop运行的docker实例 并不会减少Vmmem内存 因此需要重启wsl2 输入wsl shutdown即可 同时把Docker Desk
  • Vs QT 程序添加按钮控件,及使用信号和槽

    include QtWidgetsApplication1 h include
  • 基于python的分布式实现多节点资产收集管理平台

    真正的大师 永远都怀着一颗学徒的心 一 项目简介 基于python的分布式实现多节点资产收集管理平台 二 实现功能 支持域名扫描 支持备案信息查询 支持fofa查询 支持多账号管理 支持web站点扫描 支持目录扫描 支持端口扫描 支持漏洞扫
  • ESP32 ADC –使用Arduino IDE读取模拟值

    本文介绍了如何使用Arduino IDE通过ESP32读取模拟输入 模拟读取对于从电位计或模拟传感器等可变电阻读取值非常有用 模拟输入 ADC ADC是非线性的 analogRead 函数 其他有用的功能 使用ESP32从电位计读取模拟值
  • MySQL 事务隔离级别,读现象,MVCC

    目录 数据库读现象 事务隔离级别 错误日志 详情参见 MySQL日志管理 JasonJi 博客园 mvcc多版本并发控制 多版本并发控制mvcc multi version concurrency controll 基于多版本的并发控制 在
  • 区块链应用开发入门

    区块链技术如今是非常火热 不仅让金融家和创投家趋之若鹜 如今已经在多个领域遍地播种 作为拥有锐利触角的创业家们 是否也想将区块链集成到你们现有的应用中去 而作为IT技术工程师的你 是否也是跃跃欲试 想基于区块链来练一下手 以免日后被新技术淘
  • tcpdump: syntax error 解决-linux 下安装tcpdump 和 libpcap

    关键 linux 如何下载包 wget 下载指定目录 linu 下载文件到指定目录 今天心血来潮突然想在自己的服务上抓某个端口 结果执行tcpdump时报错了 http www tcpdump org index html 找到Latest
  • 基于C语言的分页管理方式下存储分配情况模拟

    1 题目简介 借用外存空闲分区管理中位示图的方法来表示主存分配情况 实现主存空间的分配和回收 要求能显示和打印分配或回收前后的位示图和当前空闲块数 对完成一次分配后还要显示或打印为作业建立的页表 2 所用数据结构 为要分配的作业建立数据结构
  • 时钟抖动(Jitter)和时钟偏斜(Skew)

    在进行时序分析时 经常会遇到两个比较容易混淆的概念 那就是时钟抖动 Clock Jitter 和时钟偏斜 Clock Skew 下面就解释下两者的区别 一 Jitter 由于晶振本身稳定性 电源以及温度变化等原因造成了时钟频率的变化 指的是
  • ipc_perm 详解

    系统为每一个IPC对象保存一个ipc perm结构体 该结构说明了IPC对象的权限和所有者 每一个版本的内核各有不用的ipc perm结构成员 若要查看详细的定义请参阅文件
  • 【二十五】springboot整合jedis和redisson布隆过滤器处理缓存穿透

    springboot篇章整体栏目 一 springboot整合swagger 超详细 二 springboot整合swagger 自定义 超详细 三 springboot整合token 超详细 四 springboot整合mybatis p
  • win10 win11下添加nfs客服端到linux

    在控制面板中找到程序和功能 点击 启动或关闭windows功能 打上这两个 然后确认 在资源管理器中添加linux中的nfs目录 点击如下位置 配置本地驱动器和服务器路径 以上配好后就可以访问linux上的资源了 但只有只读权限 解决办法如
  • SpringCloud分布式开发五大神兽

    SpringCloud分布式开发五大神兽 服务发现 Netflix Eureka 客服端负载均衡 Netflix Ribbon 断路器 Netflix Hystrix 服务网关 Netflix Zuul 分布式配置 Spring Cloud