1.说明

下面这篇文章介绍了Eureka Server集群的启动方法,
SpringCloud创建Eureka模块集群
是通过jar包启动时指定配置文件的方式实现的。
现在只有Eureka Server模块的源码,
介绍在Eclipse中直接启动Eureka Server集群的方式,
下面演示启动两个Eureka Server实例组成集群。

2.复制工程的方法

常见的方法是把Eureka Server模块复制,
然后修改对应的application.yml配置参数,
然后右键模块中的主启动类,
分别启动两个模块就可以了,
这个方法不多做介绍,
很多Spring Cloud教学视频用的就是这种方式。

3.复制配置文件的方法

把对应的配置文件复制一遍,
然后修改其中的参数,
每个实例启动时通过启动参数,
指定使用不同的配置文件,
即可实现启动一套代码启动两个实例。
指定配置文件启动的参数有两个:
spring.profiles.active
spring.config.location
上面两个参数效果下面会详细说明,
而Eclipse中配置启动参数的方式也有两种,
可以在Program arguments中配置参数,
也可以在VM arguments中配置参数。

4.配置文件说明1

复制Eureka Server集群的配置文件:
application-dev-1.yml
application-dev-2.yml

eureka-server-1对应的application-dev-1.yml:

server:
port: 7001
eureka:
instance:
hostname: eureka1
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka1:7001/eureka,http://eureka2:7002/eureka
server:
enable-self-preservation: false

eureka-server-2对应的application-dev-2.yml:

server:
port: 7002
eureka:
instance:
hostname: eureka2
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka1:7001/eureka,http://eureka2:7002/eureka
server:
enable-self-preservation: false

文件名必须是application-{profile}.yml格式,
且必须在src/main/resource目录下,
这样才能使用spring.profiles.active参数指定profile,
从而指定使用不同的配置文件。

5.spring.profiles.active配置在Program arguments中

首先在Eclipse中打开Boot Dashboard,
会自动发现微服务eureka-server,
右键eureka-server模块,
出现如下菜单:

点击Duplicate Conifg创建出两个Eureka Server的实例,
修改名称为eureka-server-1和eureka-server-2,
然后就可以分别配置启动参数。

右键eureka-server-1,
点击Open Config修改配置,
在Arguemts下面新增Program arguments参数:
--spring.profiles.active=dev-1

点击Apply应用,
然后Close关闭。

同样右键eureka-server-2修改配置:
--spring.profiles.active=dev-2

配置好启动参数后,
启动eureka-server-1和eureka-server-2实例即可:

6.spring.profiles.active配置在VM arguments中

和上面的步骤一样,
新建eureka-server-3和eureka-server-4实例,
右键eureka-server-3,
点击Open Config修改配置,
在Arguemts下面新增VM arguments参数:
-Dspring.profiles.active=dev-1

点击Apply应用,
然后Close关闭。

同样右键eureka-server-4修改配置:
-Dspring.profiles.active=dev-2

配置好启动参数后,
启动eureka-server-3和eureka-server-4实例即可。

7.spring.config.location配置在Program arguments中

和上面的步骤一样,
新建eureka-server-5和eureka-server-6实例修改配置。
由于spring.config.location可以指定任意路径下的任意名称的配置文件,
这里新建eureka-server-dev-5.yml和eureka-server-dev-6.yml,
然后放到src/main/resource下的cluster目录下。

--spring.config.location=classpath:cluster/eureka-server-dev-5.yml

--spring.config.location=classpath:cluster/eureka-server-dev-6.yml

8.spring.config.location配置在VM arguments中

和上面的步骤一样,
新建eureka-server-7和eureka-server-8实例:
-Dspring.config.location=classpath:cluster/eureka-server-dev-5.yml

-Dspring.config.location=classpath:cluster/eureka-server-dev-5.yml

对应的集群启动成功:

9.只修改启动参数的方法

不用复制配置文件,
只修改启动参数的方法,
这种方式适合修改参数较少的情况,
比如一个微服务集群只有启动端口不一样,
其他参数都是一样的,
可以使用同一个配置文件启动,
然后在启动参数中指定不同的端口即可。

和上面的步骤一样,
新建server-1和server-2实例,
使用同一个application-dev.yml:

server:
port: 7007

修改server-1和server-2配置:
--server.port=7009
--server.port=7010

上面参数配置在Program arguments中,
同样也可以配置在VM arguments中:
-Dserver.port=7009
-Dserver.port=7010

10.参考文章

eclipse中创建的spring-boot项目在启动时指定加载那一个配置文件的设置

Eclipse启动SpringCloud微服务集群的方法的更多相关文章

  1. springCloud搭建微服务集群+Zuul服务器端负载均衡

    概述 最近研究了一下springCloud的微服务集群,主要用到了SpringCloud的服务发现和服务器端负载均衡,所有的项目都是用的springboot,可以和springCloud无缝对接. 技 ...

  2. Spring Cloud Turbine微服务集群实时监控

    本文代码下载地址: https://gitlab.com/mySpringCloud/turbine SpringBoot版本:1.5.9.RELEASE (稳定版) SpringCloud版本:Ed ...

  3. Spring Cloud(Dalston.SR5)--Zuul 网关-微服务集群

    通过 url 映射的方式来实现 zuul 的转发有局限性,比如每增加一个服务就需要配置一条内容,另外后端的服务如果是动态来提供,就不能采用这种方案来配置了.实际上在实现微服务架构时,服务名与服务实例地 ...

  4. SpringCloud微服务实战——搭建企业级开发框架(三十四):SpringCloud + Docker + k8s实现微服务集群打包部署-Maven打包配置

      SpringCloud微服务包含多个SpringBoot可运行的应用程序,在单应用程序下,版本发布时的打包部署还相对简单,当有多个应用程序的微服务发布部署时,原先的单应用程序部署方式就会显得复杂且 ...

  5. SpringCloud微服务(04):Turbine组件,实现微服务集群监控

    本文源码:GitHub·点这里 || GitEE·点这里 写在前面,阅读本文前,你需要了解熔断器相关内容 SpringCloud微服务:Hystrix组件,实现服务熔断 一.聚合监控简介 1.Dash ...

  6. 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法

    在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. ...

  7. SpringCloud微服务实战——搭建企业级开发框架(三十五):SpringCloud + Docker + k8s实现微服务集群打包部署-集群环境部署

    一.集群环境规划配置 生产环境不要使用一主多从,要使用多主多从.这里使用三台主机进行测试一台Master(172.16.20.111),两台Node(172.16.20.112和172.16.20.1 ...

  8. 关于Redis 分布式 微服务 集群Cluster

    一:Redis 1,redis是一个高性能的键值对存储方式的数据库,同时还提供list,set,zset,hash等数据结构的存储. 2,Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集 ...

  9. 雪花算法及微服务集群唯一ID解决方案

    雪花算法(SnowFlake) 简介 现在的服务基本是分布式.微服务形式的,而且大数据量也导致分库分表的产生,对于水平分表就需要保证表中 id 的全局唯一性. 对于 MySQL 而言,一个表中的主键 ...

随机推荐

  1. Linux学习 - 文件特殊权限

    一.SUID权限(只针对文件) 只有可执行的二进制程序才能设定SUID权限 命令执行者要对该程序拥有x(执行)权限 1 拥有SUID的文件 /usr/bin/passwd 2 功能: 命令执行者(其他 ...

  2. Java_zip_多源文件压缩到指定目录下

    依赖: <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress --> <depend ...

  3. Dubbo服务分组

    服务分组与多版本控制的使用方式几乎是相同的,只要将version替换为group即可.但使用目的不同.使用版本控制的目的是为了升级,将原有老版本替换掉,将来不再提供老版本的服务,所以不同版本间不能出现 ...

  4. 时间同步之pxe,cobbler,dhcp

    ntpdate 时间同步 同步方法 ntpdate ntp服务器IP 例: ntpdate 192.168.37.11 自动运行同步时间脚本 crontab -e * */1 * * * /usr/s ...

  5. get请求url参数中有+、空格、=、%、&、#等特殊符号的问题解决

    url出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,如何是好?解决办法将这些字符转化成服务器可以识别的字符,对应关系如下:URL字符转义 用其它 ...

  6. sqlserver 各种判断是否存在(表、视图、函数、存储过程等)

    1.判断表是否存在 select * from sysobjects where id = object_id(表名) and OBJECTPROPERTY(id, N'IsUserTable') = ...

  7. 【VSCode】检测到 #include 错误。请更新 includePath。已为此翻译单元(C:\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\i686-

    win+r 运行cmd 输入"gcc -v -E -x c -"获取mingw路径: 我的: #include "..." search starts here ...

  8. numpy基础教程--浅拷贝和深拷贝

    在numpy中,使用等号(=)直接赋值返回的是一个视图,属于浅拷贝:要完整的拷贝一个numpy.ndarray类型的数据的话,只能调用copy()函数 # coding = utf-8 import ...

  9. 程序员Meme 第01期

  10. C++STL标准库学习笔记(五)set

    前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标记了出来,这一篇后面主要都是我的记录了,为了防止大片蓝色字体出现,后面就不改蓝色 ...