上一章:一、搭建Spring Cloud项目
在eureak服务加入两个配置文件,例如application-peer1.yml、application-peer2.yml
application.yml的内容:
spring:
profiles:
active: peer1
application:
name: server-eureka
application-peer1.yml的内容:
#配置端口
server:
port: 8081
eureka:
client:
#是否从Eureka Server获取信息
fetch-registry: true
#是否注册到注册中心,默认为true
register-with-eureka: true
service-url:
#设置注册中心地址,注册到peer2
defaultZone: http://peer2:8089/eureka
instance:
hostname: peer1
application-peer2.yml的内容:
#配置端口
server:
port: 8089
eureka:
client:
#是否从Eureka Server获取信息
fetch-registry: true
#是否注册到注册中心,默认为true
register-with-eureka: true
service-url:
#设置注册中心地址,注册到peer1
defaultZone: http://peer1:8081/eureka
instance:
hostname: peer2
可以看到这里是将fetch-registry和register-with-eureka都设置为ture了,因为集群说白了就是多个实例相互注册,然后成为一个集群,实现高可用。即使2个注册中心其中一个挂了,也不会影响到另外一个,所以client服务在配置注册中心的时候尽量配上所有的注册中心地址,那问题来了,为什么要互相注册呢?有啥用呀,其实呢假如呢,你只配置了一个注册中心的地址,那你这个注册中心挂了,但是它的注册信息还是存在的,因为eureka的注册信息会复制到另外一个注册中心中。
user服务的application.yml配置
eureka:
client:
service-url:
#设置注册中心地址,以逗号分隔可配置多个地址
defaultZone: http://peer1:8081/eureka,http://peer2:8089/eureka
在启动之前需要先修改一下hosts文件,mac的文件地址为/private/etc/hosts,windows的地址为:/etc/host
在文件末尾加入以下2行配置
127.0.0.1 peer1
127.0.0.1 peer2
然后开始启动项目,idea中是可以直接启动多个实例的

然后我们直接启动项目就好了,不出意外控制台会打印很多错误,这是因为找不到自己要注册的注册执行,启动完成之后,将application.yml中的配置指向peer2,然后再次启动
#配置环境
spring:
profiles:
active: peer2
application:
name: server-eureka
2次启动都成功之后应该是这样的,这样2个实例就启动成功了
然后我们随便进入到其中一个eureka的主页,可以看到,注册中心的服务有两个,只是port和hostname不一样,这两个必须唯一。
上面配的注册中心。我们也可以以相同的方式实现user服务的集群。
下一章:三、负载均衡-Ribbon