Eureka高可用分布式集群

承接上一章,这一章主要学习eureka的高可用!为什么要搭建集群?集群究竟该怎么搭建?相信读者们都有很多疑问了,接下来就一一的说一下吧

第一、Eureka高可用的作用

       之所以进行eureka集群的搭建,在于我们平时的生产环境中,很难保证单节点的eureka服务能提供百分百不间断的服务,如果eureka无响应了,整个项目应用都会出现问题,因此要保证eureka随时都能提供服务的情况下,最好的方式就是采用eureka的集群模式,也就是搭建eureka的高可用,在eureka的集群模式下,多个eureka server之间可以同步注册服务,因此,在一个eureka宕掉的情况下,仍然可以提供服务注册和服务发现的能力,从而达到注册中心的高可用。

第二、一图看懂集群的原理,集群的框架架构图

Eureka高可用分布式集群_第1张图片

 

第三、项目搭建(基于前面的项目,不熟悉的可以看看前面几篇文章,我们直接进行改造即可)

1.新配置三个本地域名:编辑C:\Windows\System32\drivers\etc\hosts 文件,添加 127.0.0.1 的本地域名:

127.0.0.1       peer1  peer2  peer3

2.修改eureka项目的配置文件application.xml

spring:
  application:
    name: spring-cloud-eurekamany
---
spring:
  profiles: peer1                                 # 指定profile=peer1
server:
  port: 8761
eureka:
  instance:
    hostname: peer1                               # 指定当profile=peer1时,主机名是peer1
  client:
    serviceUrl:
      #将自己注册到peer2和peer3这个eureka上面去
      defaultZone: http://peer2:8762/eureka/,http://peer3:8763/eureka/
---
spring:
  profiles: peer2
server:
  port: 8762
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      #将自己注册到peer1和peer3这个eureka上面去
      defaultZone: http://peer1:8761/eureka/,http://peer3:8763/eureka/
---
spring:
  profiles: peer3
server:
  port: 8763
eureka:
  instance:
    hostname: peer3
  client:
    serviceUrl:
      #将自己注册到peer1和peer2这个eureka上面去
      defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/

3.至此集群就搭建好了,启动的时候配置一下:

Eureka高可用分布式集群_第2张图片

--spring.profiles.active=peer1

按照上图分别配置三个启动项,配置完成后,我们依次启动一下项目(启动的时候可能会报错,不必担心,这是因为别的服务没有启动,注册的时候找不到服务),看看是否能注册成功!依次访问项目,我们能看到如下图框柱的信息,即代表注册成功了!

Eureka高可用分布式集群_第3张图片

4.将我们之前的项目user和order分别注册到现在的三个服务器上面!

  • 客户端修改 
    客户端要把自己注册到集群中,只需在default-zone配置三个地址即可
server:
  port: 8082  #该项目启动的端口号
spring:
  application:
    name: spring-boot-order  #配置的应用名称(用于指定到注册到Eureka上的应用的名称),这里暂且还用不到
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/,http://localhost:8763/eureka/ #这里依次把之前的服务地址写上即可,中间用逗号隔开,按理来说只需要写一个即可,因为三个服务端是相互注册的,但是为了避免在实际的生成中一个服务器挂了导致没注册到其他的服务器,所以建议还是写上所有的服务器地址
  instance:
    prefer-ip-address: true    #表示将自己的额ip注册到eureka上,如果不配置该属性或者设置为false,则表示注册微服务所在的操作系统的hostname到eureka上 2

主要是这个:

启动两个客户端项目,成功后如下所示:

Eureka高可用分布式集群_第4张图片

项目源码为:

链接:https://pan.baidu.com/s/12ZxSw0sn0a-jIurIp3TaeA 
提取码:8hag 
复制这段内容后打开百度网盘手机App,操作更方便哦

这一章学习了集群,下一章我们开始学习负载均衡,Ribbon的入门和使用!

你可能感兴趣的:(Spring)