`

spring cloud注册中心Eureka之DiscoveryClient源码分析备忘

 
阅读更多
Eureka是啥
官网直译如下:
Eureka是一种基于REST(Representational State Transfer)的服务,主要用于AWS云,用于定位服务,以实现中间层服务器的负载平衡和故障转移。我们将此服务称为Eureka Server。Eureka还附带了一个基于Java的客户端组件Eureka Client,它使与服务的交互变得更加容易。客户端还有一个内置的负载均衡器,可以进行基本的循环负载均衡。在Netflix,一个更复杂的负载均衡器包含Eureka基于流量,资源使用,错误条件等多种因素提供加权负载平衡,以提供卓越的弹性。

Eureka官网架构图


从图中可知,Eureka主要提供以下功能:
1、服务注册(Register)
2、服务续约(Renew)
3、服务下线(Cancel)
4、服务发现(Get Registry)

1、服务注册(Register)主体代码截图


上图红框所示代码调用的实际是父类:AbstractJerseyEurekaHttpClient.register(instanceInfo),即通过POST访问接口http://localhost:8761/eureka/apps/appName注册

2、服务续约(Renew)主体代码截图

以下是DEBUG截图示例


3、服务下线(Cancel)主体代码截图

通过POST调用接口http://127.0.0.1:8181/actuator/shutdown即可实现服务下线,前提是需要在配置文件application.yml中增加如下配置

且必须添加如下依赖
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>


4、服务发现(Get Registry)主体代码截图

首先本地缓存中获取,若无,则通过GET访问接口http://localhost:8761/eureka/apps/全量获取服务列表信息,以下是DEBUG截图示例

若有,则通过GET访问接口http://localhost:8761/eureka/apps/delta增量获取服务列表信息

PS:集群模式下多个Eureka之间同步可以理解为两两注册,即多个Eureka只要存在一个可用就能正常提供服务

spring boot:2.0.1.RELEASE
spring cloud:Finchley.SR1
  • 大小: 46.2 KB
  • 大小: 87.4 KB
  • 大小: 111.9 KB
  • 大小: 94.4 KB
  • 大小: 234.6 KB
  • 大小: 295.6 KB
  • 大小: 106 KB
  • 大小: 14.4 KB
  • 大小: 115.1 KB
分享到:
评论

相关推荐

    java版商城源码下载-tech_demo:技术演示

    java版商城源码下载 关于作者 前腾讯、前阿里员工,从事Java后台工作; 对Docker和Kubernetes充满热爱...Eureka源码分析专题 spring-cloud-alibaba实战 ; ; ; ; ; spring-cloud-kubernetes特辑 dubbo实战特辑 Docke

    java版商城源码下载-Tang:唐

    java版商城源码下载 关于作者 ...前腾讯、前阿里员工,从事Java后台工作; 对Docker和Kubernetes充满热爱;...Eureka源码分析专题 spring-cloud-alibaba实战 ; ; ; ; ; spring-cloud-kubernetes特辑 Docker 基础知

    java版商城源码下载-xinchen-s-repository-_clone:xinchen-s-repository-_clone

    java版商城源码下载 关于作者 ...前腾讯、前阿里员工,从事Java后台工作; 对Docker和Kubernetes充满热爱;...Eureka源码分析专题 spring-cloud-alibaba实战 ; ; ; ; ; spring-cloud-kubernetes特

    架构师最新面试专题.zip

    3. 服务发现:如Netflix Eureka、Consul或Spring Cloud中的服务注册与发现机制。 4. 消息队列:RabbitMQ、Kafka等消息中间件的角色,以及它们在解耦、异步处理、削峰填谷等方面的应用。 5. 分布式锁:Zookeeper、...

    feign_test.7z

    2. 配置服务发现:如果微服务之间使用 Eureka 进行服务注册与发现,还需要引入 spring-cloud-starter-netflix-eureka-client,并配置相关服务发现信息。 3. 创建 Feign 客户端:定义一个接口,接口中的方法对应要...

    Java就业面试题大全143页.doc

    - Spring Cloud组件的使用,如Eureka、Zuul、Hystrix等 - Spring Security的认证与授权 - Spring Data JPA与MyBatis的集成 面试时,不仅考察以上技术点的理论知识,还会通过实际问题测试应聘者的解决问题能力和...

    JAVA架构师课程+面试资料 2.zip

    6. **分布式系统**:理解CAP定理、BASE理论,熟悉分布式一致性模型如Paxos、Raft,以及分布式服务治理(如Dubbo或Spring Cloud Netflix Eureka)和负载均衡。 7. **缓存技术**:了解并能运用Redis、Memcached等缓存...

    java学习知识点以及面试题

    9. **SpringCloud面试题**:SpringCloud是微服务治理的主流框架,涉及Eureka服务注册与发现、Zuul边缘服务、Ribbon客户端负载均衡、Hystrix熔断器、Feign声明式客户端、Config配置中心、Bus事件总线等知识点。...

    Java面试宝典:包含Redis各种使用场景,分布式事务,分布式锁,DB,异步并发,JVM,微服务组件,常见的设计模式等

    - Spring Cloud和Dubbo:微服务治理框架的比较与选择。 - Eureka、Consul、Zookeeper:服务注册与发现组件。 - Ribbon、Feign、RestTemplate:客户端负载均衡器。 -熔断器Hystrix、Sentinel:服务降级、熔断策略...

    architect-awesome-java:《后端架构师技术图谱》java实现

    - **Spring Cloud**:微服务治理,包括Eureka、Zuul、Ribbon、Hystrix等组件。 6. **数据库与SQL**: - **SQL语言**:DML、DDL、DQL、DCL操作。 - **关系型数据库**:ACID属性、索引、事务处理、存储过程、...

Global site tag (gtag.js) - Google Analytics