Eureka的高可用(集群)

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的工具,其实原理就是修改上述的配置文件的

扫描二维码关注公众号,回复: 4334056 查看本文章

到此,两个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他们之间相互注册,而其他的服务还没有启动成功,所以肯定找不到要注册的主机

三个都成功后我们访问一下

http://peer1:8761/

http://peer2:8762/

访问http://peer3:8763/

当我把Eureka3的服务关闭后,在Eureka服务1和2中,三就会变成不可用状态

到此 Eureka的集群搭建完毕

猜你喜欢

转载自blog.csdn.net/qq_40368860/article/details/84709493