eureka集群
其实eureka的集群是很简单的一个事事情,就是Eureka服务之间的相互注册就可以了。
首先我们看一下Eureka高可用的官方给出的架构图,基于集群配置的eureka
在这就不解析图的各种关系了,可以参考一下本人的微服务学习笔记(2)-- Eureka,里面有详细的解析。
那接下下我们看看怎么搭建Eureka的高可用,首先Eureka的依赖必不可以少吧(具体的使用在这我也不多说了,同样可以参考本人Eureka的笔记)
<!-- 加入spring cloud 的pom -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 加入eureka的服务器依赖包 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
application.yml配置如下(这是两台Eureka的集群)
spring:
application:
name: microservice-eureka-server-ha
---
spring:
profiles: peer1 # 指定profile=peer1
server:
port: 8761
eureka:
instance:
hostname: peer1 # 指定当profile=peer1时,主机名是peer1
client:
serviceUrl:
defaultZone: http://peer2:8762/eureka/ # 将自己注册到peer2这个Eureka上面去
---
spring:
profiles: peer2
server:
port: 8762
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka/
因为上面已经指定了域名,所以我们要在电脑上配置一下域名的映射。
在这个路径下的,C:\Windows\System32\drivers\etc\hosts文件修改
本人是使用一个SwitchHosts的工具,其实原理就是修改上述的配置文件的
到此,两个Eureka的集群服务已经搭建成功了。
多台Eureka集群的搭建
其实和两台Eureka集群是一样的,就是Eureka服务之间的相互注册
application.yml配置如下(这是三台Eureka的集群)
spring:
application:
name: microservice-eureka-server
---
server:
port: 8761 #指定端口
spring:
profiles: peer1 #指定profile=peer1
#配置eureka的信息
eureka:
instance:
hostname: peer1 #指定当profile=peer1时,主机的名字是peer1
client:
service-url:
defaultZone: http://peer2:8762/eureka,http://peer3:8763/eureka #将自己注册到peer2这个Eureka服务上
---
server:
port: 8762 #指定端口
spring:
profiles: peer2 #指定profile=peer2
#配置eureka的信息
eureka:
instance:
hostname: peer2 #指定当profile=peer2时,主机的名字是peer2
client:
service-url:
defaultZone: http://peer1:8761/eureka,http://peer3:8763/eureka #将自己注册到peer1和peer2的Eureka服务上
---
server:
port: 8763 #指定端口
spring:
profiles: peer3 #指定profile=peer3
#配置eureka的信息
eureka:
instance:
hostname: peer3 #指定当profile=peer3时,主机的名字是peer3
client:
service-url:
defaultZone: http://peer2:8762/eureka,http://peer1:8761/eureka #将自己注册到peer2这个Eureka服务上
注意:多个注册地址之间使用","隔开,一定是英语的逗号,而且不能有空格
到这时候,三台的集群也搭建成功了,再多的也不用说了吧,就是以此类推的。
测试:
首先我们把这个项目package(我这是IDEA的,但eclipse也是一样的,运行maven的package)
然后到你jar包的地方执行(需要开三个doc窗口)
java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3
如下:
注意:启动前面两个肯定会报错的,因为Eureka他们之间相互注册,而其他的服务还没有启动成功,所以肯定找不到要注册的主机
三个都成功后我们访问一下
当我把Eureka3的服务关闭后,在Eureka服务1和2中,三就会变成不可用状态
到此 Eureka的集群搭建完毕