使用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.mzph.cn/news/72075.shtml

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

相关文章

865. 具有所有最深节点的最小子树(javascript)865. Smallest Subtree with all the Deepest Nodes

给定一个根为 root 的二叉树&#xff0c;每个节点的深度是 该节点到根的最短距离 。 返回包含原始树中所有 最深节点 的 最小子树 。 如果一个节点在 整个树 的任意节点之间具有最大的深度&#xff0c;则该节点是 最深的 。 一个节点的 子树 是该节点加上它的所有后代的集合…

【计算机网络】 IP协议格式以及以太网帧结构

文章目录 IP协议格式以太网帧结构 IP协议格式 IP工作在网络层 IP头分为两部分&#xff0c;固定部分和可变部分&#xff0c;固定部分就是一定要带这些数据&#xff0c;正常存储应该是连续的&#xff0c;并不是像图中这样会换行&#xff0c;图中只是为了方便观察。 首先是一个版…

山洪、地质灾害监测利器-泥石流、山体滑坡AI视觉仪

1、设备介绍 AI视觉仪通过AI算法智能化摄像机&#xff0c;能够及时、全面的把握边坡潜在安全风险&#xff0c;有效防范自然灾害。支持全天候运行&#xff0c;在恶劣环境及气候条件下仍能正常进行监测数据采集。自动识别监控区域内是否有泥石流、山体滑坡等&#xff0c;一旦检测…

uni-app:重置表单数据

效果 代码 <template><form><input type"text" v-model"inputValue" placeholder"请输入信息"/><input type"text" v-model"inputValue1" placeholder"请输入信息"/><input type&quo…

排序之插入排序

文章目录 前言一、直接插入排序1、基本思想2、直接插入排序的代码实现3、直接插入排序总结 二、希尔排序1、希尔排序基本思想2、希尔排序的代码实现3、希尔排序时间复杂度 前言 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大…

IDEA找不到Maven窗口

有时候导入项目或者创建项目时候Maven窗口找不到了 然后指定项目的pom.xml文件

torch.bmm功能解读

bmm 是 batched matrix multiple 的简写&#xff0c;即批量矩阵乘法&#xff0c;矩阵是二维的&#xff0c;加上batch一个维度&#xff0c;因此该函数的输入必须是两个三维的 tensor&#xff0c;三个维度代表的含义分别是&#xff1a;&#xff08;批量&#xff0c;行&#xff0c…

【python手写算法】逻辑回归实现分类(含公式推导)

公式推导&#xff1a; 代码实现&#xff1a; # codingutf-8 import matplotlib.pyplot as plt import numpy as npdef f(w1,x1,w2,x2,b):zw1*x1w2*x2breturn 1/(1np.exp(-z)) if __name__ __main__:X1 [12.46, 0.25, 5.22, 11.3, 6.81, 4.59, 0.66, 14.53, 15.49, 14.43,2.1…

DHCP的interface(接口),global(全局)配置以及DHCP relay(中继),DHCP snooping,DHCP option

目录 1.DHCP的接口&#xff08;interface&#xff09;配置 2.DHCP的全局&#xff08;global&#xff09;配置 3.dhcp relay 4.dhcp snooping 5.option 这里有一个简单的拓扑图 交换机配置命令如下 The device is running!<Huawei> <Huawei>sys Enter system …

Android 动画之插值器PathInterpolator

Android 的View动画、属性动画都可以设置动画插值器&#xff0c;以此来实现不同的动画效果。 这篇文章 Android View动画整理 有介绍各种插值器的效果&#xff0c;这一篇专访 PathInterpolator 。 参考官网 添加曲线动作 &#xff0c; PathInterpolator 基于 贝塞尔曲线 或 …

2023 大学生数学建模竞赛-C题-第一问

题目&#xff1a; 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c; 大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c;商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销…

亚马逊鲲鹏系统多渠道引流功能快速增加你的listing流量

如果亚马逊Listing没有流量&#xff0c;那么亚马逊产品排名也会在很靠后的位置&#xff0c;从而就会导致吸引不到客户点击进行下单购买&#xff0c;因此引流就很重要了&#xff0c;普通的引流方法很难达到效果&#xff0c;并且还会花费大量的时间&#xff0c;那么我们可以用亚马…

【postgresql 基础入门】数据库服务的管理,启动、停止、状态查看、配置加载、重启都在这里

数据库服务管理 ​专栏内容&#xff1a; postgresql内核源码分析手写数据库toadb并发编程 ​开源贡献&#xff1a; toadb开源库 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff…

JMeter压力测试 5分钟让你学会如何并发压测接口

文章目录 地址下载启动 使用 地址 JMeter官网下载&#xff1a;https://jmeter.apache.org/download_jmeter.cgi 下载 最新款的jmeter需要java8的支持&#xff0c;请自行安装jdk8或以上的版本 根据系统不同系统下载zip或者是tgz格式的压缩包&#xff0c;并解压&#xff0c;博…

【Chrome】chrome浏览器未连接到互联网

问题描述 电脑上安装了一个联想电脑管家&#xff0c;进行了一下清理&#xff0c;并优化了一下启动项&#xff0c;Chrome浏览器突然什么网站都无法访问了。以为更新坏了&#xff0c;但相同的网站放到火狐浏览器上&#xff0c;竟然可以打开&#xff0c;怎么回事呢&#xff1f;怎…

报错:axios 发送的接口请求 404

axios 发送的接口请求 404 一、问题二、分析 一、问题 二、分析 axios 发送的接口请求 404&#xff0c;根本没有把接口信息发送到后端&#xff0c;这个时候你可以查看检查一下自己的接口名字&#xff0c;或让后端配合换一个接口名字再发送一次接口请求 或者重启一下电脑 我是…

微调chatGLM-6B大模型的方法

GLM官方的知乎微调教程&#xff1a;https://zhuanlan.zhihu.com/p/618498001 GLM官方的GitHub微调教程&#xff1a;https://github.com/THUDM/ChatGLM-6B/tree/main/ptuning 说这个微调出的模型和原模型是同时加载的&#xff0c;输入文本的时候会先看看微调出的模型有没有存相应…

c++图论免费ppt,简单深度理解图论

本篇博文想分享一个ppt,是帮助大家简单深度理解c图论. 作者承诺&#xff1a;分享的东西没有病毒&#xff0c;是资料。 分享的东西一个是ppt,ppt里面是150页的&#xff0c;里面将带领大家简单深度理解c图论&#xff0c;还有一个就是里面例题的数据&#xff0c;大家可以按照数据…

Unity 之利用Audio Source(音频源)组件用于播放声音

文章目录 Unity中的Audio Source&#xff08;音频源&#xff09;是一个用于播放声音的组件&#xff0c;通常附加到游戏对象上&#xff0c;以便在游戏中播放音频效果、音乐或对话。以下是Audio Source的详细介绍&#xff1a; 添加Audio Source&#xff1a; 要在Unity中使用Audio…

Qt 5.15集成Crypto++ 8.8.0(MSVC 2019)笔记

一、背景 笔者已介绍过在Qt 5.15.x中使用MinGW&#xff08;8.10版本&#xff09;编译并集成Crypto 8.8.0。 但是该编译出来的库&#xff08;.a和.dll&#xff09;不适用MSVC&#xff08;2019版本&#xff09;构建环境&#xff0c;需要重新编译&#xff08;.lib或和.dll&#xf…