码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Cloud中Eureka的服务注册

时间:2017-08-06 20:53:55      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:启动   acl   interval   cond   registry   private   实现   appname   key   

Eureka中的服务注册,分为服务注册中心,和服务注册这。

一,服务注册者

服务注册者在启动的时候会通过发送rest请求的方式将自己注册到Eureka Server上。Eureka Server将服务注册的原信息保存在双层结构的map上,第一层的key是服务名,第二层的key是具体服务实例名。

在注册完成后服务提供者会维护一个心跳用来持续的,调用续约服务的时间间隔通过eureka。Instance.less-renewal-interval-in-seconds来设置,默认是30秒。

要开启服务的提供者,我们通过@EnableDiscoveryClient来进行配置。

其主要的作用开启一个DiscoveryClient的实例

/**

 * Annotation to enable a DiscoveryClient implementation.

 * @author Spencer Gibb

 */

 

而在Eureka 实现的服务治理中对应的是EurekaDiscoveryClient这一个实现,具体的是通过EurekaClient的实现也就是DiscoveryClient来完成的。

 

二,注册中心。

注册中心接受和处理服务注册者的请求,处理注册请求的逻辑在ApplicationResource的addInstance方法中。

在完成校验之后,会通过InstanceRegistry中的regist的方法完成注册。

public void register(InstanceInfo info, int leaseDuration, boolean isReplication) {

                   handleRegistration(info, leaseDuration, isReplication);

                   super.register(info, leaseDuration, isReplication);

         }

 

         private void handleRegistration(InstanceInfo info, int leaseDuration,

                            boolean isReplication) {

                   log("register " + info.getAppName() + ", vip " + info.getVIPAddress()

                                     + ", leaseDuration " + leaseDuration + ", isReplication "

                                     + isReplication);

                   publishEvent(new EurekaInstanceRegisteredEvent(this, info, leaseDuration,

                                     isReplication));

         }

 

在handleRegistration的方法中,将服务注册的事件广播出去。

然后调用父类的方法完成注册。

Spring Cloud中Eureka的服务注册

标签:启动   acl   interval   cond   registry   private   实现   appname   key   

原文地址:http://www.cnblogs.com/yimixiong/p/7295590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!