eureka服务注册中心

kyieureka已经闭源了,springcloud也可以采用Zookeeper和Consul做服务中心,我们这里继续使用eureka

在父工程下添加module


eureka服务注册中心_第1张图片

添加依赖信息


    org.springframework.cloud

    spring-cloud-starter-netflix-eureka-server


eureka服务注册中心_第2张图片

application.yml

##服务端口号

server:

    port:8000

##服务名称

   spring:

    application:

        name: eurekaserver

eureka:

    instance:

        ##注册ip地址

        hostname: 127.0.0.1

    client:

        serviceUrl:

            ##client注册地址

            defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

            ## 注册到服务中心 默认为true。本身为注册中心不需要注册到自己。

        register-with-eureka:false

        ## 服务检测 默认true。这里关闭

        fetch-registry:false


eureka服务注册中心_第3张图片

编写启动类EurekaApplication

@SpringBootApplication

@EnableEurekaServer

public class EurekaApplication {

    public static void main(String[] args) {

        SpringApplication.run(EurekaApplication.class);

    }

}


eureka服务注册中心_第4张图片

启动eureka访问http://127.0.0.1:8000/


eureka服务注册中心_第5张图片

这样我们的eureka注册中心就搭建完成了

eureka的高可用

服务注册中心的相互注册可以实现eureka的高可用,注册后实现服务清单的互相同步,达到高可用效果。我们用3个节点演示Eureka集群环境搭建:

eureka8000 分别向8001和8002注册服务


eureka服务注册中心_第6张图片

eureka8001 分别向8000和8002注册服务


eureka服务注册中心_第7张图片

eureka8002 分别向8000和8001注册服务

eureka服务注册中心_第8张图片

分别打开http://127.0.0.1:8000/ ,http://127.0.0.1:8001/,http://127.0.0.1:8002/  


eureka服务注册中心_第9张图片

eureka 的自我保护

默认情况下eureka注册中心会接受eureka client端上报的心跳(默认90s)。当超过时间没有接收到eureka client上报的心跳,eureka server会认为该client端服务不可用,从而将该服务剔除服务列表。当短时间内丢失大量客户端上报的心跳,这个时候eureka server会认为可能是服务端的问题,从而开启自我保护,不会剔除该服务。开发我们可以通过enable-self-preservation=false 关闭自我保护机制保证不可用的服务及时剔除,生产环境慎用。

注意:有时候我们会看见下图的红色消息,这是因为我们将eureka client端重启而注册中心没有一起启动。导致eureka client端上报的心跳大量减少,,eureka注册中心开启自我保护机制,不会剔除没有心跳的client端。Renews (last min) 最后一分钟收到的心跳数量小于Renews threshold(心跳阈值)时就会出现

eureka服务注册中心_第10张图片

eureka客户端(服务消费者)

eureka客户端会定时向eureka服务端发送请求获取服务信息(默认30s 可以配置registry-fetch-interval-seconds 时间),并将服务信息缓存到本地

你可能感兴趣的:(eureka服务注册中心)