Tag Archives | spring cloud

Netflix源码解析之Ribbon:看Spring-cloud怎样使用Ribbon

关注下spring cloud是如何进行客户端负责均衡。 看怎么调用到负载均衡的,怎么定义负载均衡的,然后是怎么实现的?

第一个其实可以不用关心,调用的地方应该很多,找到一个地方来说明怎么调用的即可。 第二个,可以猜下,最主要的应该是一个类似 serviceInstance get(string serviceId)这样的方法吧。 第三个问题,明摆着,使用netflix的ribbon呗。

发起一个调用时,LB对输入的serviceId,选择一个服务实例。

??关键代码看到调用的是一个LoadBalancerClient的choose方法,对一个serviceId,选择一个服务实例。看下LoadBalancerClient是一个接口:

LoadBalancerClient_outline

足够简单,只定义了三个方法,根据一个serviceId,由LB[......]

阅读全文

Tags: , , , ,

Comments { 0 }

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

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

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

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

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

阅读全文

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 }