在上一篇文档中,描绘了如何在IDEA编译器及本地环境下搭建单机版的Eureka的服务端和客户端,也就是图1这种情况(一台Eureka的服务端和一个Eureka的客户端)。
一般我们程序员在做SpringCloud业务开发时都是基于单机版的架构下开发,就不同的业务模块划分决定了会存在不止一个微服务,每一个微服务对应的自然就是Eureka的客户端,故我们在本地代码开发时,走的都是图2(一个Eureka服务端和多个Eureka客户端)
可真实的线上生产环境,往往不止有一个Eureka服务端,而是多个,因为我们知道服务器都会有宕机的情况,何况作为一个服务存在的EurekaServer端呢!
本篇纯粹讲如何在本地环境下搭建Eureka集群(IDEA编译器),不讲线上docker方式
对于springCloud组件的使用,依赖、配置和加注解这三步在上一篇已完成了对单机版的Eureka的实现,而集群版只不过是在单机版基础上修改一下配置文件即可
首先还是先看一下官方文档,对此有何指引
换句话说:官方建议是让EurekaServer端相互注册,来确保Eureka高可用!毕竟Eureka走的就是AP设计!
接下来我们就从图3这种方式说起,然后慢慢过渡到图4
1 修改Eureka Server端配置文件
在修改之前,我们来对比一下官方文档单机版和双机版所推荐配置文件
区别:
1、在单机版配置中我们看到只有一个配置文件,可双机版人家推荐用两个配置文件区分
2、在讲单机版的时候,我们就针对控制台报错问题,深究了一下红色方框1的内容,可在双机版这两个配置直接不存在
3、在双机版两个不同配置文件的默认注册地址是不一样的
步骤1 按照推荐,创建两个不同的配置文件
步骤2 IDEA里做好多启动对应配置文件映射
分别启动Server端peer1,然后启动Client1,再启动Server端peer2,访问界面如下
至此我们来看一下client端的配置文件,思考几个问题:
思考:
1、从上一篇文档里我们明白,这个client服务默认往localhost:8761/eureka/去注册,怎么会跑到localhost:8762里面去呢?
2、从单机版到双机版,红色方框1的内容在影响着什么,如果在双机版加上,还会出现如上效果吗?
3、如果我改变启动顺序,如果是先启动服务端peer1,然后启动服务端peer2,最后再启动client服务,在localhost:8762上还能看到client1被注册吗?为什么呢?
4、如果要部署三台eurekaServer,那么euerkaServer在配置上如何改动?
容我偷个懒不解释上面问题,由于思考3情况的存在,在确保服务高可用的情况下,我们要向图4看齐,故在client端配置文件上,得如此修改
至此,本地搭建Eureka集群暂告一段落,有点虎头蛇尾(最近有点懒),多担待哈