SpringCloud之高可用注册中心Eureka Server集群搭建

Spring Cloud的Eureka Server的高可用实际上就是将本身做为服务向其余服注册中心注册本身,造成一组互相注册的服务注册中心,以实现服务清单的互相同步,达到高可用的效果。接下来介绍下如何搭建一个服务注册中心集群。
下图是文件结构, 很是简洁,就一个启动类。不得不说有了spingBoot开发一个新的项目简单了很多。
咱们须要的maven的依赖:
<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

而后application.yml这个文件能够无视,这个是SpringBoot启动的默认配置文件,对咱们没有影响,由于在这里咱们启动三个服务注册中心的指定启动配置文件分别是application-peer1.yml,application-peer2.yml,application-peer3.yml。

application-peer1.ymljava

spring:
  application:
    name: eureka-server

server:
  port: 1111

eureka:
  instance:
    hostname: peer1
  client:
    service-url:
      defaultZone: http://peer2:1112/eureka/,http://peer3:1113/eureka/

application-peer2.ymllinux

spring:
  application:
    name: eureka-server

server:
  port: 1112

eureka:
  instance:
    hostname: peer2
  client:
    service-url:
      defaultZone: http://peer1:1111/eureka/,http://peer3:1113/eureka/
application-peer3.yml

spring:
  application:
    name: eureka-server

server:
  port: 1113

eureka:
  instance:
    hostname: peer3
  client:
    service-url:
      defaultZone: http://peer1:1111/eureka/,http://peer2:1112/eureka/


而后建立一个名为EurekaApplication的启动类,经过注解@ EnableEurekaServer代表这是一个Eureka Server。
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
   public static void main(String[] args) {
      SpringApplication.run(EurekaApplication.class, args);
   }
}

而后在idea中建立3个启动配置文件不一样的springBoot的启动实例。三个实例的启动类都是 EurekaApplication,可是启动的配置文件不一样就能够开启三个不一样的服务,这也是SpringBoot的方便之处。 具体配置参考下图:
在启动以前,须要改一下机器的hosts文件,我是用我本机开启了三个注册中心集群,因此三个注册中心的ip都是127.0.0.1,若是在不一样的机器上这里能够改为具体对应的ip地址。在windows中找到C:\Windows\System32\drivers\etc目录下的hosts文件,加入三个注册中心的信息。linux是 经过vim /etc/hosts 。
而后挨个启动三个实例:第一个启动完成后的若是报错属于正常状况,由于其余 两台注册中心还没启动完。
异常:com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused。
等到全部注册中心都启动后,打开 http://localhost:1111/ 控制台查看全部注册中心集群的状况。能够看到当前有三台可用的注册中心存在。恭喜你,已经成功搭建起了一个Eureka Server集群。 下图中的 SERVICE-HI是我启动的两个服务提供者集群,还有一个服务消费者SERVICE-RIBBON,该如何建立服务提供者和服务消费者,我将在另外一篇文章里讲到。

公司这台可怜的8G内存的笔记本,卡爆