SpringCloud实战---第七篇:Eureka注册中心之服务集群

举报
老司机张师傅 发表于 2022/07/26 23:21:27 2022/07/26
【摘要】 前言 说起来容易做起来难,一步一步都干完!!! 学习一定要自己动手搞一搞,不能只眼会。 学习笔记是跟着尚硅谷的视频学的:https://www.bilibili.com/video/BV18E411x7eT?p=1 场景大纲我们以这样一个场景来学习、构建我们的微服务 服务注册中心Eureka集群概念 1. 工作流程Eureka是cloud提供的服务治理框架,实现服务的统一调用和管理,当微服...

前言

说起来容易做起来难,一步一步都干完!!!

学习一定要自己动手搞一搞,不能只眼会。

学习笔记是跟着尚硅谷的视频学的:https://www.bilibili.com/video/BV18E411x7eT?p=1


场景大纲

我们以这样一个场景来学习、构建我们的微服务

在这里插入图片描述

服务注册中心Eureka集群概念

1. 工作流程

  • Eureka是cloud提供的服务治理框架,实现服务的统一调用和管理,当微服务接口数量上来之后使用传统的RestTemplate的方式调用会十分不便,也不便于我们统一的管理和监控,引入Eureka框架可以实现服务统一的发布和管理,Eureka包含Server和Client两个组件。

  • EurekaServer就是注册中心,服务向注册中心注册后,可以被其他使用方发现调用。EurekaClient就是服务提供方和服务调用方,服务可以将自己注册为服务提供者和服务调用者。

  • 服务注册:将服务信息注册进注册中心。

  • 服务发现:从注册中心上获取服务信息,本质上是通过key服务命名取value服务调用地址。
    在这里插入图片描述

  • 整体的流程

    • 启动注册中心7001
    • 启动8001服务提供者
    • 8001启动后会把自身信息注册进入7001注册中心
    • 消费者80需要调用接口时,使用8001的服务名称获取RPC远程调用地址
    • 获取到远程调用地址后,使用HttpClient的方式实现远程调用
    • 80消费方获取8001服务地址后,会缓存到本地jvm内存中,默认每隔30s更新一次-
  • 问题:微服务RPC远程服务调用最核心的是什么?是注册中心.
    高可用:试想你的注册中心只有一个only one, 它出故障了那就呵呵( ̄▽ ̄)"了,会导致整个为服务环境不可用 
    解决办法:搭建Eureka注册中心集群 ,实现负载均衡+故障容错

2. Eureka集群

  • 本质是多个EurekaServer(服务注册中心)相互注册,互相监控。
    在这里插入图片描述

Eureka集群环境搭建

1. 创建7002工程模块

创建cloud-eureka-server7002工程模块,除了命名和端口,其他的和7001一样,创建方法不再赘述,不会的请参照《第六篇:Eureka注册中心之服务注册》。

2. 修改电脑的hosts映射配置文件

由于我们配置中的hostname不能重复,否则会造成EurekaServer集群分不清哪个节点是哪个,所以我们需要修改下电脑的hosts配置,配置下hostname和127.0.0.1的映射关系。
在这里插入图片描述
找到C:\Windows\System32\drivers\etc路径下的hosts文件。
在这里插入图片描述
右键,以文本格式打开编辑,在末尾添加上以下配置。

127.0.0.1       eureka7001.com
127.0.0.1       eureka7002.com
127.0.0.1       eureka7003.com

在这里插入图片描述
ctrl+s保存,再重新打开,看是否保存成功。

2. 修改7001和7002的配置信息

将配置信息中的hostname修改为各自的,然后注册时defaultZone配置分别向对方注册
在这里插入图片描述
在这里插入图片描述

3. 启动测试

  1. 启动两个EurekaServer
    在这里插入图片描述
    在这里插入图片描述
  2. 验证
    访问7001的eureka web页面,看注册是否指向7002
http://eureka7001.com:7001/

在这里插入图片描述
访问7002的eureka web页面,看注册是否指向7001

http://eureka7001.com:7002/

在这里插入图片描述
互相指向说明集群配置成功。

EureClient服务提供者的改造

将服务提供者8001和80修改为向集群注册服务信息。

  1. 修改两模块的application配置文件,添加集群信息,修改defaultZone配置上两个注册中心地址,中间用逗号隔开,多个可以写多个
http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/

在这里插入图片描述
注意:修改80服务调用者时,由于之前我们关闭了注册。现在测试服务注册可以打开。
在这里插入图片描述
2. 启动测试
在这里插入图片描述
分别查看两个EurekaServer,上面都有两个服务注册上来了。

http://eureka7001.com:7001/
http://eureka7001.com:7002/

在这里插入图片描述
完美!!!

小结

  • 微服务最核心的管理者是注册中心,一旦注册中心服务挂掉所有进程都将无法通信,因此通常Eureka会做成集群。
  • EurekaServer服务注册中心的hostname配置不能重复,可以通过修改hosts文件来修改域名和IP映射配置。
  • EurekaServer集群的根本原理是启动多个节点,各个节点间相互注册相互守望。
  • 服务要向集群注册时只需要修改配置文件的defaultZone配置,将多个注册中心的地址配置上去,以英文逗号隔开即可。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。