一、Eureka高可用机制介绍

Eureka服务器没有后端存储,但注册表中的服务实例都必须发送心跳以使其注册保持最新(因此可以在内存中完成)。 客户端还有一个Eureka注册的内存缓存(因此,他们不必为服务的每个请求转到注册表)。

默认情况下,每个Eureka服务器也是Eureka客户端,并且需要(至少一个)服务URL来定位对等体。 如果您不提供该服务,该服务将运行并正常运行,但它会在您的日志中填充很多关于无法向对等方注册的噪音。

二、实现Eureka高可用

两个缓存(客户端和服务器)和心跳的组合使得独立的Eureka服务器能够非常适应故障,只要有某种监视器或弹性运行时(例如Cloud Foundry)使其保持活动状态即可。 在独立模式下,您可能更愿意关闭客户端行为,以便它不会继续尝试并且无法访问其对等方。 以下示例显示如何关闭客户端行为:

下面看一下项目中,是如何应用的,看一下配置文件

spring:
  application:
    name: EUREKA-HA
  security:
    user:
      name: user
      password: password123
---
server:
  port: 8761
spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://user:password123@peer2:8762/eureka/,http://user:password123@peer3:8763/eureka/
---
server:
  port: 8762
spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://user:password123@peer1:8761/eureka/,http://user:password123@peer3:8763/eureka/
---
server:
  port: 8763
spring:
  profiles: peer3
eureka:
  instance:
    hostname: peer3
  client:
    serviceUrl:
      defaultZone: http://user:password123@peer1:8761/eureka/,http://user:password123@peer2:8762/eureka/

 

idea启动配置中,做如下配置:

 

 在系统的hosts中,增加127.0.0.1 peer1 peer2 peer3

然后启动3个项目,通过浏览器访问任意一个eureka,就可以出现如下的界面,

 

posted on 2019-04-13 14:44  小~虎  阅读(714)  评论(0编辑  收藏  举报