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.yml

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.yml

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内存的笔记本,卡爆

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试