Tag Archives | microservice

Netflix源码解析之Ribbon:客户端负载均衡器Ribbon的设计和实现

1. LB的基本功能要求

想想一个LB是怎么工作的,不管是硬件的还是软件的,我们要求它有哪些能力,提个最精简的需求清单出来:好像能想到的也就两个吧:

  • ?设置添加和读取后端的服务(器)列表
  • 能从中选择一个服务(器)

Netflix的LoadBalancer也是这样被要求的。通过ILoadBalancer来要求的。

iloadbalancer_outline

可以看到主要有:对应配置后端服务;读取后端服务;标记一个服务不可用;当然最主要的是选择一个后端服务来提供服务。

这是2.1.0版本的方法列表,2.1.3开始版本也就是把getServerList (boolean availableOnly)分成了两个getReachableServers和getAllServers(解释是in favor of the cleaner),一个分成俩,clean了吗,好像一点点。一个是得到所有的后端ser[......]

阅读全文

Tags: , , ,

Comments { 4 }

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 }