使用SpringCloud Eureka 搭建EurekaServer 集群- 实现负载均衡故障容错【上】

😀前言
本篇博文是关于使用SpringCloud Eureka 搭建EurekaServer 集群- 实现负载均衡&故障容错,希望你能够喜欢

🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

文章目录

  • SpringCloud Eureka 服务注册与发现
    • 搭建EurekaServer 集群- 实现负载均衡&故障容错
      • 为什么需要集群Eureka Server
        • 示意图
        • 说明
      • 需求分析/图解
        • 示意图
      • 搭建Eureka Server 集群
        • 创建e-commerce-eureka-server-9002 微服务模块[作为注册中心]
          • 创建步骤参考e-commerce-eureka-server-9001
          • 修改pom.xml , 加入依赖
          • 创建resources/application.yml
          • 创建主启动类EurekaApplication9002.java
        • 修改e-commerce-eureka-server-9001 微服务模块
          • 修改resources/application.yml
          • 修改主启动类名为EurekaApplication9001.java
        • 修改hosts 文件
        • 完成测试
        • 将member-service-provider-10000 注册到EurekaServer 集群(目前2 台)
          • 修改resources/application.yml
          • 完成测试
        • 将member-service-consumer-80 注册到EurekaServer 集群(目前2 台)
          • 修改resources/application.yml
          • 完成测试

SpringCloud Eureka 服务注册与发现

搭建EurekaServer 集群- 实现负载均衡&故障容错

为什么需要集群Eureka Server

示意图

image-20230827092956080

说明

  1. 微服务RPC 远程服务调用最核心的是实现高可用
  2. 如果注册中心只有1 个,它出故障,会导致整个服务环境不可用
  3. 解决办法∶搭建Eureka 注册中心集群,实现负载均衡+故障容错

需求分析/图解

示意图

image-20230827093048263

搭建Eureka Server 集群

创建e-commerce-eureka-server-9002 微服务模块[作为注册中心]

创建步骤参考e-commerce-eureka-server-9001

模块创建步骤前面说过,这里不再说明。

修改pom.xml , 加入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>e-commerce-center</artifactId><groupId>com.my.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>e-commerce-eureka-server-9002</artifactId><!--引入相关的依赖: 如果有需要,可以调整--><dependencies><!--引入eureka-server 场景启动器starter: 使用版本仲裁--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><!--引入web-starter 说明我们使用版本仲裁(从父项目继承了版本)--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--说明:starter-actuator 是springboot程序的监控系统, 可以实现系统的健康检测可以通过http://localhost:9002/actuator 看到相关的连接,和信息--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--引入test-starter--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!--引入e_commerce_center-common-api--><dependency><groupId>com.my.springcloud</groupId><artifactId>e_commerce_center-common-api</artifactId><version>${project.version}</version></dependency></dependencies></project>
创建resources/application.yml
server:port: 9002#配置eureka-server
eureka:instance:hostname: eureka9002.com #服务实例名client:#配置不向注册中心注册自己register-with-eureka: false#表示自己就是注册中心,作用就是维护注册服务实例, 不需要去检索服务fetch-registry: falseservice-url:#这里注册到eureka9001 serverdefaultZone: http://eureka9001.com:9001/eureka/
创建主启动类EurekaApplication9002.java
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication9002 {public static void main(String[] args) {SpringApplication.run(EurekaApplication9002.class, args);}
}

修改e-commerce-eureka-server-9001 微服务模块

修改resources/application.yml
server:port: 9001#配置eureka-server
eureka:instance:hostname: eureka9001.com #服务实例名client:#配置不向注册中心注册自己register-with-eureka: false#表示自己就是注册中心,作用就是维护注册服务实例, 不需要去检索服务fetch-registry: falseservice-url:#设置与eureka server 交互模块, 查询服务和注册服务都需要依赖这个地址#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/#相互注册,这里应该注册到eureka server9002defaultZone: http://eureka9002.com:9002/eureka/
修改主启动类名为EurekaApplication9001.java
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication9001 {public static void main(String[] args) {SpringApplication.run(EurekaApplication9001.class, args);}
}

修改hosts 文件

  1. 文件: C:\Windows\System32\drivers\etc\host
  2. 文件可以先拷贝到桌面,修改后,再拷贝会去
  3. 加入内容:
#eureka 主机名和ip 映射
127.0.0.1 eureka9001.com
127.0.0.1 eureka9002.com

完成测试

启动e-commerce-eureka-server-9001

启动e-commerce-eureka-server-9002

浏览器: http://eureka9001.com:9001 浏览器: http://eureka9002.com:9002

image-20230827093648980

image-20230827093700041

将member-service-provider-10000 注册到EurekaServer 集群(目前2 台)

修改resources/application.yml
    #说明: 将defaultZone: http://localhost:9001/eureka 注销改成红色内容service-url:# defaultZone: http://localhost:9001/eureka #表示将自己注册到哪个eurekaServer# 将本微服务注册到多个eurekaServer, 使用逗号隔开defaultZone: http://eureka9001.com:9001/eureka,http://eureka9002.com:9002/eureka
完成测试
  1. 启动e-commerce-eureka-server-9001 和e-commerce-eureka-server-9002
  2. 启动member-service-provider-10000
  3. 观察member-service-provider-10000 是否注册到Eureka 集群(目前2 台)

浏览器输入: http://eureka9001.com:9001/

image-20230827093918065

浏览器输入: http://eureka9002.com:9002/

image-20230827093948644

将member-service-consumer-80 注册到EurekaServer 集群(目前2 台)

修改resources/application.yml
    #说明: 将defaultZone: http://localhost:9001/eureka 注销改成红色内容service-url:# defaultZone: http://localhost:9001/eureka #表示将自己注册到哪个eurekaServer# 将本微服务注册到多个eurekaServer, 使用逗号隔开defaultZone: http://eureka9001.com:9001/eureka,http://eureka9002.com:9002/eureka
完成测试
  1. 启动e-commerce-eureka-server-9001 和e-commerce-eureka-server-9002
  2. 启动member-service-consumer-80
  3. 观察member-service-consumer-80 是否注册到Eureka 集群(目前2 台)

浏览器输入: http://eureka9001.com:9001/

image-20230827094326145

浏览器输入: http://eureka9002.com:9002/

image-20230827094342093

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

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

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

相关文章

【huggingface】数据集及模型下载并保存至本地

目录 数据集ChnSentiCorppeoples_daily_ner 模型bert-base-chinesehfl/rbt3t5-baseopus-mt-zh-enChinese_Chat_T5_Base 环境&#xff1a;没有代理&#xff0c;无法访问部分国外网络 数据集 正常情况下通过load_dataset加载数据集&#xff1b;save_to_disk保存至本地&#xff1b…

Docker构建Springboot项目,并发布测试

把SpringBoot项目打包成Docker镜像有两种方案&#xff1a; 全自动化&#xff1a;先打好docker镜像仓库&#xff0c;然后在项目的maven配置中配置好仓库的地址&#xff0c;在项目里配置好Dockerfile文件&#xff0c;这样可以直接在idea中打包好后自动上传到镜像仓库&#xff0c…

别来!这所院校性价比太低了!

一、学校及专业介绍 浙江工商大学&#xff08;Zhejiang Gongshang University&#xff09;&#xff0c;简称“浙商大”&#xff08;ZJSU&#xff09;&#xff0c;坐落于浙江省杭州市&#xff0c;是中华人民共和国教育部、中华人民共和国商务部和浙江省人民政府共建的浙江省重点…

【数学建模竞赛】Matlab逻辑规则,结构基础及函数

逻辑基础 逻辑变量 在Matlab中&#xff0c;逻辑变量是一种特殊类型的变量&#xff0c;用于表示逻辑值。逻辑变量只有两个可能的值&#xff1a;true&#xff08;真&#xff09;和false&#xff08;假&#xff09;。在Matlab中&#xff0c;我们可以使用0和1来表示逻辑变量的值。…

Windows模拟器推荐

物是人非事事休&#xff0c;欲语泪先流 Windows模拟器推荐 如果你需要在 Windows 操作系统之外运行 Windows 应用程序或测试不同版本的 Windows&#xff0c;有几个 Windows 模拟器和虚拟机软件可供选择。以下是一些常用的 Windows 模拟器和虚拟机软件&#xff1a; VirtualBox&…

3dMax全球学习资源、资源文件和教程 !

此样例教育教程和学习资源旨在提供使用Autodesk 3ds Max时的计划知识和培训、正确的工作流、流程管理和最佳实践。 您在Autodesk三维设计领域的职业生涯 有关使用3ds Max和Maya在计算机图形领域开始职业生涯的提示&#xff08;包括新的3ds Max和Maya介绍教程&#xff0c;以复…

每日刷题|回溯法解决全排列问题

​ 食用指南&#xff1a;本文为作者刷题中认为有必要记录的题目 前置知识&#xff1a;回溯法经典问题之组合 ♈️今日夜电波&#xff1a;爱人错过—告五人 1:11 ━━━━━━️&#x1f49f;──────── 4:52 …

OpenCV之形态学操作

形态学操作包含以下操作&#xff1a; 腐蚀 (Erosion)膨胀 (Dilation)开运算 (Opening)闭运算 (Closing)形态梯度 (Morphological Gradient)顶帽 (Top Hat)黑帽(Black Hat) 其中腐蚀和膨胀操作是最基本的操作&#xff0c;其他操作由这两个操作变换而来。 腐蚀 用一个结构元素…

前端的规范

假如团队中的小伙伴在提交代码时没有遵循规范要求&#xff0c;只写了一个"fix"或"update&#xff0c;这会给其他小伙伴造成困扰&#xff0c;不得不花时间查看代码和推测逻辑。 不仅会浪费了时间和精力&#xff0c;可能会导致项目以下问题&#xff1a; 可读性差…

新能源商用车软件开发设计规范

目 录 前 言.............................................................................................................. 1 1 范围............................................................................................................... 2 2 规范性…

腾讯云-对象存储服务(COS)的使用总结-JavaScript篇

简介 对象存储&#xff08;Cloud Object Storage&#xff0c;COS&#xff09;是腾讯云提供的一种存储海量文件的分布式存储服务&#xff0c;具有高扩展性、低成本、可靠安全等优点。通过控制台、API、SDK 和工具等多样化方式&#xff0c;用户可简单、快速地接入 COS&#xff0…

单片机有哪些分类?

单片机有哪些分类? 1.AVR单片机-----速度快&#xff0c;一个时钟周期执行一条指令&#xff0c;而普通的51单片机需要12个时钟周期执行一条指令。当然&#xff0c;Atmel公司出品的AT89LP系列单片机也是一个时钟执行一条指令&#xff0c;但目前还未普及。AVR单片机比51单片机多…