5.Eureka服务注册的源码分析(springcloud)

一、Eureka 概念的理解
1 服务的注册
当项目启动时(eureka 的客户端),就会向 eureka-server 发送自己的 元数据(原始数据) (运行的 ip ,端口 port ,健康的状态监控等,因为使用的是 http/ResuFul 请求风格), eureka-server 会在自己内部保留这些元数据 ( 内存中 ) 。(有一个服务列表) restful 格,以 http 动词的请求方式,完成对 url 资源的操作)
2 服务的续约
项目启动成功了,除了向 eureka-server 注册自己成功,还会 定时 的向 eureka-server 汇报自己,心跳,表示自己还活着。(修改一个时间)
3 服务的下线(主动下线)
当项目关闭时,会给 eureka-server 报告,说明自己要下机了。
4 服务的剔除(被动下线,主动剔除)
当项目超过了指定时间没有向 eureka-server 汇报自己,那么 eureka-server 就会认为此节点死掉了,会把它剔除掉,也不会放流量和请求到此节点了。
二、Eureka 源码分析
了解他的原理 出了问题排查 bug ,优化你的代码
1 Eureka 运作原理的特点
Eureka-server 对外提供的是 restful 风格的服务
http 动词的形式对 url 资源进行操作 get post put delete
http 服务 + 特定的请求方式 + 特定的 url 地址
只要利用这些 restful 我们就能对项目实现注册和发现
只不过, eureka 已经帮我们使用 java 语言写了 client ,让我们的项目只要依赖 client 就能实现注册和发现!
只要你会发起 Http 请求,那你就 有可能 自己实现服务的注册和发现。不管你是什么语言!
三、服务注册的源码分析【重点】

Eureka-client 发起注册请求
1.源码位置

2 如何发送信息注册自己

 

3 真正的注册 AbstractJerseyEurekaHttpClient

 

总结:
eureka 启动的时候,会向我们指定的 serviceUrl 发送请求,把自己节点的数据以 post请求的方式,数据以 json 形式发送过去。
当返回的状态码为 204 的时候,表示注册成功。
Eureka-server 实现注册+保存

 1 接受客户端的请求

com.netflix.eureka.resources.ApplicationResource

2 源码位置

 

3 接受 client 的注册请求

 

4 处理请求(注册自己,向其他节点注册)

 

5 真正的注册自己

 

服务注册总结 

重要的类:
DiscoveryClient 里面的 register() 方法完后注册的总体构造
AbstractJerseyEurekaHttpClient 里面的 register() 方法具体发送注册请求(post
InstanceRegistry 里面 register() 方法接受客户端的注册请求
PeerAwareInstanceRegistryImpl 里面调用父类的 register() 方法实现注册
AbstractInstanceRegistry 里面的 register() 方法完成具体的注册保留数据到 map 集合保存服务实例数据的集合:
第一个 key 是应用名称(全大写) spring.application.name
Value 中的 key 是应用的实例 id
eureka.instance.instance-id
Value 中的 value 是 具体的服务节点信息
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一道光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值