zoukankan      html  css  js  c++  java
  • springCloud相关之注册中心Eureka

          众所周知,springCloud是spring家族中的一个成员,它是现今非常流行的微服务框架,下面介绍几个比较基本的组件之注册中心Eureka。

    Eureka

      Eureka是微服务的注册中心和发现,它的作用是管理庞大的原子性服务,每个原子性服务必须注册到eruka中。举个例子:我们把Eureka比作美团APP,那么这些商家就是一个一个的原子性服务。它起的作用就是管理这些商家。

      各个服务必须向Eureka发送心跳,表示它们还在健康的工作,一般而言,每隔30秒会发送一次,Eureka在90秒内没有接受到服务的心跳,它将其剔除,当然,你也可以开启保护机制。

      Eureka承载的服务以及接受的心跳数量是非常巨大的,那么它是如何控制这么大的并发呢?内存,它的最可观的设计就是设计在内存中,下面简单介绍下。

      Eureka 的基本架构,其中主要包括以下 种角色。

                  Register Service :服务注册中心,它是一个 ureka Server ,提供服务注册和发现的功能。

                  Provider Service :服务提供者,它是 Eureka Client ,提供服务

                  Consumer Service :服务消费者,它是 Eureka Cient ,消费服务

           服务消费的基本过程如下:首先前要 1个服务注册中心 Eureka Server ,这时服务生产者将在注册中心注册,包括自己的IP和服务名称,服务消费者也是如此。然后,消费者会获取到一个服务注册表,通过这个注册表获取相关服务,最后消费服务生产者的服务。

      代码层面解析Eureka原理:

        注册:Registe:在Eureka客户端中,有一个服务注册的方法register(),启动时,会以HTTP形式向服务端注册。代码如下:

                                                                     

             此时,我们继续追踪Eureka客户端中的register方法,可以发现,这个方法被InstancelnfoReplicator类的RUN()方法调用,而InstancelnfoReplicator类实现了runnable接口。

                                                                     

        而InstancelnfoReplicator类是在DiscoveryClient初始化过程中使用的,其中有个initScheduledTasks()方法,该方法主要开启了获取服务注册表的信息。如果要向注册中心注册,则要开启注册,并且开启续约:

                                                                     

        再来跟踪 Eureka server 端的代码,会发现有一 EurekaBootStrap 的类,BootStrapContext 类在程序启动 具有最先初始化的权 限,代码如下

                                                                     

        其中, PeerAwarelnstanceRegistryImp 和PeerErekaNod 其命名上看 应该 服务 注册以及 Eureka Server 高可用有关。代码如下:

                                                                    

        点击其中的 super.register(info, leaseDuration, isReplication 方法,进入其父类 AbstractlnstanceRegistry 可以发现更多细节:

                                                         

        以上就是注册中心相关说明。

        

  • 相关阅读:
    RepositoryItemComboBox 用法1
    php 直接获取url参数赋值成变量。省去繁琐的获取参数,再一个个赋值
    什么是经验,就是解决问题的能力!!
    win7 上运行 php7 +
    win2008 server 多IP配置
    mysqlli 的基本用法
    PHP操作mongoDB 笔记
    关于PHP程序员技术职业生涯规划 转自 韩天锋
    linux 简单笔记
    ubantu 重启mysql
  • 原文地址:https://www.cnblogs.com/wuyandijun/p/13231522.html
Copyright © 2011-2022 走看看