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. Vue API 3模板语法 ,指令

    条件# v-if# v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 truthy 值的时候被渲染. v-show# v-show 指令也是用于根据条件展示一块内容.v-show ...

  2. OkHttp3 使用

    导入 compile 'com.squareup.okhttp3:okhttp:3.3.0' GET请求 String url = "https://www.baidu.com/" ...

  3. my43_mysql内存相关概念

    相关参数 read_buffer_size https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_re ...

  4. java通过反射获取Java对象属性值

    说明: 作为反射工具类,通过对象和属性的名字获取对象属性的值,如果在当前对象属性没有找到,依次向上收集所有父类的属 性,直到找到属性值,没有找到返回null: 代码: 1.classUtil pack ...

  5. 【Java多线程】Java 原子操作类API(以AtomicInteger为例)

    1.java.util.concurrent.atomic 的包里有AtomicBoolean, AtomicInteger,AtomicLong,AtomicLongArray, AtomicRef ...

  6. springboot-devtools实现项目的自动重启

    热部署的引入依赖: <!-- 热部署 --> <dependency> <groupId>org.springframework.boot</groupId& ...

  7. linux基本操作命令2

    复制文件 格式: cp [参数] [ 被复制的文件路径] [ 复制的文件路径] -r :递归复制  (需要复制文件夹时使用) 案例:将/root目录下的test文件夹及其内部的文件复制到/tmp中 [ ...

  8. 『与善仁』Appium基础 — 22、获取元素信息的操作(一)

    目录 1.获取元素文本内容 (1)text()方法 (2)get_attribute()方法 (3)综合练习 2.获取元素在屏幕上的坐标 1.获取元素文本内容 (1)text()方法 业务场景: 进入 ...

  9. 你的Redis怎么持久化的

    一.持久化套路 OK,一般我们在生产上采用的持久化策略为 (1)master关闭持久化 (2)slave开RDB即可,必要的时候AOF和RDB都开启 该策略能够适应绝大部分场景,绝大部分集群架构. 为 ...

  10. Mysql资料 视图

    目录 一.简介 二.例子 三.好处 四.工作机制 一.简介 视图是数据库中的一个虚拟的表是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据. 但是,视图并不在数据库中以 ...