注册中心在于整个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秒