这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战
0 环境
1 | 复制代码系统环境:win10 |
1 注册中心
1 | scss复制代码Eureka是springcloud中的注册中心。 |
2 Eureka构成
1 | arduino复制代码Eureka分为两部分:服务端和客户端,服务端就是注册中心,接收其他服务注册,客户端则是Java客户端,用来注册。 |
3 基础搭建
1 | 复制代码Eureka由Java开发的,springcloud使用springboot对Eureka进行了封装,使用方便。 |
1 对应的版本
2 创建一个springboot项目 添加Eureka依赖
2 yml配置 启动Eureka功能
1 | yaml复制代码# 给当前服务取一个名字 |
3 启动项目
4 Eureka后台管理界面介绍
4 Eureka集群
1 | scss复制代码注册中心使用之后 所有服务都要通过服务注册中心进行信息交换 服务注册中心的稳定性很重要 一旦注册中心崩了 整个系统都会受到影响 在实际使用中 Eureka一般是以集群的形式出现的 |
1 全景
2 yml配置
1 | yaml复制代码# 给当前服务取一个名字 |
1 | yaml复制代码# 给当前服务取一个名字 |
3 打jar包
1 | css复制代码java jar xxxx.jar --spring.profiles.active=a |
1 | 复制代码启动2个实例时 可能会报一些错 不影响使用 页面登陆不了 排除你自己哪里写的有问题了 |
1 | 复制代码启动成功后 确实是相互注册了 共建了一个集群 |
5 Eureka细节
1 | arduino复制代码Eureka分为Eureka Server和Eureka Client |
1 Eureka Server
1 | scss复制代码对外提供的功能: |
2 Eureka Client
1 | vbscript复制代码Eureka Client很多事情帮你做了(自动拉取 更新以及缓存server信息 哪怕所有server节点凉了 client依旧能获取到想要的地址(但是地址可能不太准确)) 简化每个服务和server之间的交互 |
2.1 服务注册
1 | arduino复制代码服务提供者将自己注册到服务注册中心(server) 提示->服务提供者(业务划分上的划分) 本质上是Eureka Client 当Eureka Client向Eureka Server注册时 需要提供必要的元信息 比如IP地址 名称 运行状态 端口等。。。 |
2.2 服务续约
1 | arduino复制代码Eureka Client注册到Eureka Server上之后 注册成功后 Eureka Client每隔30s向Eureka发送一条心跳信息(告诉它我还活着) 若连续90s(连续3次没法送)有没有收到Eureka Client的续约消息 它会认为Client挂了 赶紧把client从服务列表撤销 |
1 | yaml复制代码eureka: |
2.3 服务下线
1 | vbscript复制代码当client下线时 发消息通知server我下线了 |
2.4 获取注册表信息
1 | arduino复制代码Eureka Client从Eureka Server上获取服务的注册信息 将其缓存在本地 本地客户端调用服务器 会从该信息中查找远程服务所对应的IP地址等信息 Eureka Client上缓存服务定期30s更新 若本地缓存注册表的信息与server传过来的信息有变化的话 Client会自动处理 |
1 | yaml复制代码eureka: |
6 Eureka集群原理
1 | rust复制代码在这个图上 Eureka通过Replicate进行数据同步 不同Eureka Server之间的节点地位均等 节点间集群的形成 通过置顶的serviceUrl相互注册 高可用节点的可用性得到提高 |
7 小结
1 | vbscript复制代码1.注册中心的出现解决了服务间的耦合 |
本文转载自: 掘金