Tag Archives | eureka

Netflix源码解析之Ribbon:负载均衡器通过Eureka获取动态后端服务列表

Ribbon是一种客户端的负载均衡,本质上是跑在服务消费者的进程里。服务消费者要访问服务时,通过ribbon向一个服务注册的列表查询,然后以配置的负载均衡策略选择一个后端服务发起请求。

前面ribbon的实现,讲到LB的定义的两个主要方法,分别是后端服务相关的调用:

在netflix中这个服务注册列表其实就是eureka服务端集中管理的注册服务列表。获取这个列表应该就是是通过eureka的client来完成的。

也就是ribbon中应该在某个地方集成了eureka client来维护服务列表。这里尝试追踪细这个过程,确认下猜想。

ribbon的实现的继承图上可以看到除了介绍的基本实现LoadBalancer外,还有DynamicServerListLoadBalancer的实现,可以动态的加载后[......]

阅读全文

Tags: , , , ,

Comments { 1 }

Netflix源码解析之Eureka:Eureka client 注册过程

记录下eureka client如何将本地服务的注册信息发送到远端的注册服务器eureka server上。不像上文中讲到的get操作,服务需要自己发起读取注册信息来进行自己后续的服务调用。服务注册可以认为是Eureka client自己完成,不需要服务来费心。

实现思路其实也挺简单,在com.netflix.discovery.DiscoveryClient启动的时候,会初始化一个定时任务,定时的把本地的服务配置信息,即需要注册到远端的服务信息自动刷新到注册服务器上。

客户端
1. 在DiscoveryClient中初始化一个InstanceInfoReplicator,其实里面封装了以定时任务。

2. 以initialDelayMs为间隔调用
[crayon-5a16902748ee501423479[......]

阅读全文

Tags: , , ,

Comments { 2 }

Netflix源码解析之Eureka:Eureka 服务注册发现接口

本文关注下Eureka作为服务注册发现对外提供的主要操作。

首先关注下netflix eureka server 原生提供的接口。https://github.com/Netflix/eureka/wiki/Eureka-REST-operations?这是对非java的服务使用eureka时可以使用的rest接口。对于java应用,直接使用java的接口就可以

Netxflix 提供的主要操作定义在com.netflix.discovery.EurekaClient中。主要操作有:

eurekaclient_outline

其实现类是 com.netflix.discovery.DiscoveryClient。

Spring cloud中对其进行了封装,定义在org.springframework.cloud.client.discovery.DiscoveryClient中,

spring_cloud_eureka_client

可以[......]

阅读全文

Tags: , , ,

Comments { 2 }

Spring-cloud & Netflix 源码解析之Eureka

最近在了解spring cloud + neflix。取了些依赖的netflix和spring-cloud-netflix的源码,先看了服务注册发现服务Eureka部分,整理了一点笔记:

首先功能上:
粗粗的过了下Spring cloud怎么让用户的服务通过一个注解能集成一个eureka的客户端,其实也就是spring自己注入了一个自己的eureka[......]

阅读全文

Tags: , , , , ,

Comments { 0 }

Netflix源码解析之Eureka:Eureka client 到Server的调用过程

前面一篇文章中介绍了spring cloud会自动的在服务端维护一个自己的org.springframework.cloud.netflix.eureka.EurekaDiscoveryClient,其实是对netflix原生的?com.netflix.discovery.EurekaClient的一个封装。在这里向了解下这个client是怎样工作的,怎样去和eureka server通信的。在这篇文章中重点就是粗线条的知道下eureka client 到server的整个通信(交互)的过程(通道或者方式)。不是对每个接口的详细追踪。管用非常重要的register操作见Spring-cloud & Netflix 源码解析:Eureka client 注册过程
从client提供的API已经知道了,虽然有spring cloud的封装,但是真正实现还是netflix原生的[......]

阅读全文

Tags: , , ,

Comments { 2 }