在父项目里新建module,同样为maven,也可以选择springInitializer。注意groupID和赋项目要相同。
aircraftId 设置为 cloud-eureka
然后修改pom 文件的parent为 上一章中的父项目。
然后添加eureka server 依赖
pom:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.cloud.demo</groupId>
<artifactId>cloud</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.cloud.demo</groupId>
<artifactId>cloud-eureka</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>cloud-eureka</name>
<description>Demo project for Spring Boot</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
然后再启动类上添加 @EnableEurekaServer
添加配置 application.yml
server:
port: 8888
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
application:
name: eureka-server
至此服务注册中心已建好。打开127.0.0.1:8888即可看到注册中心的可视化页面。
注册中心的高可用
注册中心这么重要的职责是必须保证高可用的,不然挂掉后所以服务都不可见了。
eureka的高可用其实很简单,就是将注册中心多跑几个实例,然后每个实例的 service-url.defaultZone 的地址设置成其他实例的地址,这样,当前实例就会注册到其他注册中心的实例中,大家互相注册,这样就有了注册中心集群,可以保证注册中心的高可用。