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. 如何在Swagger2或Swagger3中增加Json Web Token

    1. 前言 Swagger 3.0已经发布有一段时间了,作为一个非常有用的文档工具已经越来越多的项目在使用它.而JWT也是目前前后端分离最常用的安全技术.那么如何在Swagger 3.0 中添加JWT ...

  2. Swift Storyboard找不到类文件

    Swift语言引入了Module概念,在通过关键字@objc(类名)做转换的时候,由于Storyboard没有及时更新Module属性,会导致如下两种类型错误: 1 用@objc(类名)标记的Swif ...

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

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

  4. 【Linux】【Commands】trouble shooting命令详解目录

    1. 简介 1.1. 最近看到阿里的运维招聘需要熟练掌握以下的命令,我就针对这几个命令做一下总结,有些命令我觉得别人总结的挺好了,我就不赘述了 1.2. 还有一些其他我觉得用得到的命令的用法会在第三部 ...

  5. mysql之join浅析

    1.可以使用join吗?使用join有什么问题呢?-- >超过3个表不使用join,笛卡尔积问题 -->这些问题是怎么造成的呢? 如果可以使用 Index Nested-Loop Join ...

  6. python pandas 中文件的读写——read_csv()读取文件

    read_csv()读取文件1.python读取文件的几种方式read_csv 从文件,url,文件型对象中加载带分隔符的数据.默认分隔符为逗号read_table 从文件,url,文件型对象中加载带 ...

  7. 35、搜索插入位置 | 算法(leetode,附思维导图 + 全部解法)300题

    零 标题:算法(leetode,附思维导图 + 全部解法)300题之(35)搜索插入位置 一 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: // 方案1 "无视要 ...

  8. 什么是内容分发CDN

    一.简介 CDN全称:Content Delivery Network或Content Ddistribute Network,即内容分发网络 基本思路: 尽可能避开互联网上有可能影响数据传输速度和稳 ...

  9. [BUUCTF]PWN——pwnable_start

    pwnable_start 附件 步骤: 例行检查,32位程序,什么保护都没开,首先想到的是ret2shellcode的方法 本地试运行一下,看看程序大概的情况 32位ida载入,没法f5,好在汇编不 ...

  10. [BUUCTF]PWN——ciscn_2019_ne_5

    ciscn_2019_ne_5 题目附件 步骤: 例行检查,32位,开启了nx保护 试运行一下程序,看一下程序的大概执行情况 32位ida载入,shift+f12查看程序里的字符串,发现了flag字符 ...