二、Eureka注册中心

本文详细介绍了Eureka作为服务注册中心的角色及其工作流程,包括服务提供者、消费者和服务注册中心的职责。通过步骤展示了如何搭建Eureka服务端和客户端,以及Eureka的自我保护机制和缓存更新策略。
摘要由CSDN通过智能技术生成

目录

注册中心主要有三种角色:

1、服务提供者(RPC Server)

2、服务消费者(RPC Client)

3、服务注册中心(Registry)

注册中心实现原理

常用的注册中心:

常用注册中心对比:

 Eureka 的工作流程:

一、搭建Eureka注册中心微服务,提供注册中心功能

1、在springcloud父项目下创建聚合项目springcloud-eureka,在springcloud-eureka项目的pom文件引入eureka服务端依赖

2、添加application.yml配置文件

3、添加EurekaApp.class启动类上添加注解@EnableEurekaServer表示当前项目为Eureka服务端

4、运行启动类

5、访问注册中心地址http://localhost:8090/

二、使用Eureka注册中心

1、在springcloud-member、springcloud-order、springcloud-pay项目的pom文件中添加eureka客户端依赖

2、在springcloud-member、springcloud-order、springcloud-pay项目的application.yml文件中分别添加以下配置

3、在springcloud-member、springcloud-order、springcloud-pay项目的启动类上添加注解@EnableEurekaClient表示当前项目为Eureka客户端

4、运行springcloud-member、springcloud-order、springcloud-pay项目的启动类

5、打开Eureka注册中心地址http://localhost:8090/

三、注册中心缓存更新

1、在springcloud-eureka项目的配置文件中,修改Eureka Server的配置

2、客户端配置文件修改


注册中心原理

注册中心主要有三种角色:

1、服务提供者(RPC Server)

在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。

2、服务消费者(RPC Client)

在启动时,向 Registry 订阅服务,把 Registry 返回的服务节点列表缓存在本地内存中,并与 RPC Sever 建立连接。

3、服务注册中心(Registry)

用于保存 RPC Server 的注册信息,当 RPC Server 节点发生变更时,Registry 会同步变更,RPC Client 感知后会刷新本地 内存中缓存的服务节点列表。

最后,RPC Client 从本地缓存的服务节点列表中,基于负载均衡算法选择一台 RPC Sever 发起调用。

 

注册中心实现原理

1、服务的提供者在启动时把自身的服务接口信息注册到注册中心,这时每个服务与注册中心保持一个长连接,并以心跳包的形式与注册中心进行通讯

2、客户端在启动的时候往注册中心订阅它所需要的服务列表信息,把它订阅的服务列表缓存到本地

3、当客户端需要调用服务端接口时,从本地缓存中获取地址列表,通过本地负载均衡策略选择具体的服务地址,再通过RPC(FeignClient)进行远程调用

4、注册中心会保存服务地址列表信息和客户端的订阅信息

5、当服务出现不可用时(宕机),注册中心会剔出不可用服务地址,再通过事件通知给订阅的客户端

常用的注册中心:

  1. Eureka(netflix)  AP
  2. Zookeeper     CP
  3. Consul        CP
  4. Nacos(Alibaba)  AP/CP

常用注册中心对比:

 Eureka 的工作流程:

1、Eureka Server 启动成功,等待服务端注册。在启动过程中如果配置了集群,集群之间定时通过 Replicate 同步注册表,每个 Eureka Server 都存在独立完整的服务注册表信息。

2、Eureka Client 启动时根据配置的 Eureka Server 地址去注册中心注册服务。

3、Eureka Client 默认会每 30s 向 Eureka Server 发送一次心跳请求,证明客户端服务正常。

4、当 Eureka Server 90s 内没有收到 Eureka Client 的心跳,注册中心则认为该节点失效,会注销该实例。

5、单位时间内 Eureka Server 统计到有大量的 Eureka Client 没有上送心跳,则认为可能为网络异常,进入自我保护机制,不再剔除没有上送心跳的客户端。

6、当 Eureka Client 心跳请求恢复正常之后,Eureka Server 自动退出自我保护模式。

7、Eureka Client 定时全量或者增量从注册中心获取服务注册表,并且将获取到的信息缓存到本地。

8、服务调用时,Eureka Client 会先从本地缓存找寻调取的服务。如果获取不到,先从注册中心刷新注册表,再同步到本地缓存。

9、Eureka Client 获取到目标服务器信息,发起服务调用。

10、Eureka Client 程序关闭时向 Eureka Server 发送取消请求,Eureka Server 将实例从注册表中删除

一、搭建Eureka注册中心微服务,提供注册中心功能

1、在springcloud父项目下创建聚合项目springcloud-eureka,在springcloud-eureka项目的pom文件引入eureka服务端依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</arti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值