Archive | 三月, 2016

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

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

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

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

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

阅读全文

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 }

Spring-cloud&Netflix 源码解析之Eureka:一个注解加载Eureka client

一般我们的都会被告知使用spring cloud app 如果需要服务服务注册发现功能,只需简单的一个 @EnableEurekaClient 的annotation,就可以搞定。服务启动时会自动注册到eureka服务,服务消费者只需要使用该名字加方法名就可以调用到服务。代码基本不用加任何东西,很神奇的样子!于是有点好奇一个本文重点关注在spring cloud中Eureka client是如何被注入,来供服务使用的。

本文主要了解下在spring cloud下用户开发一个自己的服务,用一个annotation怎么就能自动的完成服务的注册和发现。怎样偷偷的集成了一个eureka的client进去的。说实话对于这个annotation虽然看着对使用者是很简单,但是可能对一般使用惯了API的人,封装太多了倒有点不踏实。[......]

阅读全文

Tags: , , , , ,

Comments { 2 }