注册中心——DiscoverClient初始化

服务注册与发现

这段时间打算把springCloud的5大核心模块梳理下,分别为注册中心、配置中心、网关、熔断、负载均衡,本文简单介绍下服务注册发现的原理

1、RPC远程调用框架的核心设计思想在于注册中心,因为注册中心管理服务与服务之间的依赖关系(即服务治理)

2、什么是服务治理

业务背景:订单服务调用会员服务获取用户相关信息
在这里插入图片描述
产生的问题:如果未来服务与服务之间的依赖关系非常多的情况下,服务URL管理起来非常复杂,这时可以使用服务治理技术管理每个服务与服务之间的依赖关系

服务治理概念:可以进行本地负载均衡,实现服务发现与注册以及容错等

3、 本地负载均衡

服务调用方获取多个地址后,自己算法判断调用哪个服务

springcloud中支持三种注册中心,分别为Eureka consul zookeeper
dubbo中支持两种注册中心,reids和zookeeper

4、下面重点看下Eureka原理

一般我们将Spring boot应用注册到Eureka Server或者需要从Eureka Server中获取服务列表时,需要做如下三件事情:

  • 引入依赖
<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
  • 在应用主类中配置@EnableDiscoveryClient注解
  • 在application.properties中用eureka.client.serviceUrl.defaultZone参数指定服务注册中心地址

1、看下引入的eureka有哪些自动配置

在这里插入图片描述

2、看下Eureka客户端何时何地访问服务端并获取注册中心的服务列表

在EurekaClientAutoConfiguration自动配置类中我们关注下EurekaClient的创建过程
在这里插入图片描述
进入构造方法
在这里插入图片描述
调用父类构造方法,最终会走向DiscoveryClient类的如下方法
在这里插入图片描述
这个方法比较长,我们分几段来看

3.1、首先创建了三个线程池,从名称可以知道,分别是定时、心跳和刷新

在这里插入图片描述

3.2 、然后第一次尝试获取注册中心信息

在这里插入图片描述
进入方法内部
在这里插入图片描述

3.3、从eureka服务器获取完整的注册表信息并将其存储在本地。

在这里插入图片描述

3.4、最后触发定时任务

在这里插入图片描述
简单看下其中的刷新定时任务
在这里插入图片描述
任务执行时会触发run方法
在这里插入图片描述
方法中再一次调用fetchRegistry方法
在这里插入图片描述

心跳任务
在这里插入图片描述
客户端发送心跳
在这里插入图片描述
发送心跳时如果状态是404 则客户端进行重新注册

总结:本文主要讲述客户端初始化的过程,下节将继续跟踪下客户端注册和发现的过程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值