springcloud之eureka搭建

140 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

注册中心在于整个springcloud系统架构中,扮演着十分重要的角色,负责着服务发现,心跳检测,服务调度等功能,且注册中心的高可用意味着整个系统的高可用。 鉴于springcloud包含众多组件,所以在idea创建项目,推荐使用子模块的形式来建立各个项目组件。 1.创建项目 创建一个springboot项目,添加必要的依赖。 2.添加子模块 在项目基础上添加子模块eureka-server 在项目基础上添加子模块 3.pom文件添加依赖

		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

并在启动类添加注解@EnableEurekaServer以表示启动使用eureka 4.application.yml配置文件中添加配置

server:
  port: 8761

spring:
  application:
    name: eureka-server

eureka:
  instance:
    leaseRenewalIntervalInSeconds: 10
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
  client:
    registryFetchIntervalSeconds: 5
    register-with-eureka: true #当集群部署时候,该值为true,开发改为false
    fetch-registry: true #当集群部署时候,该值为true,开发改为false
    serviceUrl:
      defaultZone: http://127.0.0.1:8761/eureka

以上配置适合与开发使用,正式环境需要以集群的形式:

register-with-eureka,fetch-registry需要改为true

defaultZone需要配置多个节点地址,以逗号分隔例如http://localhost:8761/eureka,http://localhost:8762/eureka,http://localhost:8763/eureka
也可以将这个属性值以变量的形式填写,这样在部署的时候可以动态指定ip进行部署

其他配置项说明:

leaseRenewalIntervalInSeconds:表示eureka client发送心跳给server端的频率
prefer-ip-address:表示客户端以ip的形式注册到注册中心
instance-id:${spring.cloud.client.ip-address}:${server.port}以ip+端口的形式
registryFetchIntervalSeconds:表示eureka client间隔多久去拉取服务注册信息,默认为30秒