Eureka注册中心

一、Eureka的主要功能是进行服务管理,定期检查服务状态,返回服务地址列表,自身并不提供服务也不消费服务

二、Eureka原理图形

三、服务消费可以使用工具类根据服务名称到eureka中获取对应的服务地址列表

四、就Eureka而言,所需要进行的相关配置

                    1:Eureka-server

                                a:单机版的配置
                                      
                                          # 应用名称,会在Eureka中作为服务的id标识(serviceId)
                                          spring.application.name=eureka-server

                                          #EurekaServer的地址,现在没有做集群,是自己的地址,如果是集群,需要写其集群中的eureka地址
                                          eureka.client.service-url.defaultZone=http://127.0.0.1:10086/eureka

                                          #是否注册自己,单机版的自己不用注册
                                          eureka.client.register-with-eureka=false

                                          #自己不拉取注册的服务
                                          eureka.client.fetch-registry=false

                                          #若某一服务失效后,eureka剔除该服务的时间,默认60s
                                          eureka.server.eviction-interval-timer-in-ms=60000

                                          # 关闭自我保护模式.默认是开启状态
                                          eureka.server.enable-self-preservation=false


                                b:集群版的配置

                                          # 应用名称,会在Eureka中作为服务的id标识(serviceId)
                                          spring.application.name=eureka-server

                                          #EurekaServer的地址,现在没有做集群,是自己的地址,如果是集群,需要写其集群中的eureka地址
                                          eureka.client.service-url.defaultZone=${defaultZone:http://127.0.0.1:10086/eureka}


                                          #是否注册自己,单机版的自己不用注册
                                          #eureka.client.register-with-eureka=false

                                          #自己不拉取注册的服务
                                          #eureka.client.fetch-registry=false

                      2:user-server

                                #将user-service服务注册到eureka中
                                eureka.client.service-url.defaultZone=http://127.0.0.1:10086/eureka

                                #默认注册时使用的是主机名或者localhost,现在改为使用ip进行注册
                                eureka.instance.ip-address=127.0.0.1
                                eureka.instance.prefer-ip-address=true

                                #服务续约,定时向EurekaServer发起Rest请求,告诉EurekaServer:“我
                                #还活着”,避免服务被eureka从注册中心剔除

                                #续约间隔时间,默认30s
                                eureka.instance.lease-renewal-interval-in-seconds=5
                                #续约失效时间,默认90s
                                eureka.instance.lease-expiration-duration-in-seconds=5


                      3:consumer-demo

                                #让consumer-demo服务消费者到eureka中拉取服务列表
                                eureka.client.service-url.defaultZone=http://127.0.0.1:10086/eureka

                                #服务消费者到eureka中拉取服务列表的间隔时间,默认30s
                                eureka.client.registry-fetch-interval-seconds=10

三、Eureka的原理

    Eureka Server提供服务的注册服务
        各个微服务节点通过配置启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中的将会存储所有可用服务节点信息,服务节点的信息可以在界面中直观看到

    EurekaClient通过注册中心进行访问
        是一个Java客户端,用于简化EurekaServer的交换,客户端同时也具备一个内置的,使用轮询负载算法的负载均衡器,在应用启动后,将会向EurekaServer发送心跳(默认周期30秒),如果EurekaServer在多个心跳周期内没有接受到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)


   服务的注册:将服务注册到注册中心
   服务的发现:从注册中心中获取服务信息,主要以key【服务名】,value【服务地址】


  Eureka流程:

            1、先启动Eureka注册中心

            2、启动服务提供者payment支付服务

            3、支付服务启动后会把自身信息,比如(服务地址)会以别名的形式注册到Eureka中

            4、消费者order服务在调用接口时,使用服务别名去注册中心获取实际的RPC远程调用地址

            5、消费者获取调用地址后,底层实际是利用HttpClient技术实现远程调用

            6、消费者获取调用服务地址后会缓存在本地JVM内存中,默认每间隔30秒更新一次服务调用地址

四、什么是自我保护模式

  默认情况下,如果EurekaServer在一定时间内没有接受某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒),但是当网络分区故障发生(延迟、卡顿、拥挤)时,微服务与EurekaServer之间无法正常通信,EurekaServer会误判微服务已经挂掉了,90秒后将该微服务的注册信息移除,但微服务本身是正常的,Eureka通过“自我保护”来解决这个问题
posted @ 2020-09-16 23:01  jock_javaEE  阅读(182)  评论(0编辑  收藏  举报