Eureka Server 高可用性集群

时间:2022-09-19 01:26:52
  1. 之前写的前一文写的是单点,而且Eureka Client 会定时的连接Eureka Server,获取注册表里的信息进行缓存到本地,如果微服务发现不可用了Eureka Client 就不会更新,就会影响微服务的调用,所以要一个有高可用的Eureka Server 集群,Eureka Server 可以通过运行多个实例来相互注册的方式实现高可用部署。从而保证里数据的一致性。
  2. 现在建一个双节点的Eureka Server 集群。
    首先我们先修改主机的host是文件C:\Windows\System32\drivers\etc\hosts 文件添加
    127.0.0.1 peer1 peer2
    3.看一下项目目录
    Eureka Server 高可用性集群
    新建两个文件application-peer1.properties,appplication-peer2.properties 文件代码分别是
server.port=1111
eureka.instance.hostname=peer1
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://peer2:1112/eureka/
eureka.server.enable-self-preservation=false
server.port=1112
eureka.instance.hostname=peer2
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://peer1:1111/eureka/
eureka.server.enable-self-preservation=false

MiroserviceDiscoveryEurekaHaApplication.java

package com.zjm.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class MiroserviceDiscoveryEurekaHaApplication {

    public static void main(String[] args) {
        SpringApplication.run(MiroserviceDiscoveryEurekaHaApplication.class, args);
    }
}

配置好之后,将项目打包jar.然后输入
激活peer1启动
java -jar miroservice-discovery-eureka-ha-0.0.1-SNAPSHOT.jar –spring.profiles.active=peer1
java -jar miroservice-discovery-eureka-ha-0.0.1-SNAPSHOT.jar –spring.profiles.active=peer2
Eureka Server 高可用性集群
然后访问:http://peer1:1111,如图下
Eureka Server 高可用性集群
上图可知道peer2已经注册到peer1服务里了
访问http://peer2:1112
Eureka Server 高可用性集群,
看上图peer1已经注册peer2里面了
下边把之前写miroservice-provider-user服务注册到
添加eureka.client.service-url.defaultZone=http://peer1:1111/eureka/,http//peer2:1112/eureka/

Eureka Server 高可用性集群
服务消费者注册到peer1,peer2微服上了。