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. mysql删除数据后不释放空间问题

    如果表的引擎是InnoDB,Delete From 结果后是不会腾出被删除的记录(存储)空间的. 需要执行:optimize table 表名; eg:optimize table eh_user_b ...

  2. [学习总结]3、Android---Scroller类(左右滑动效果常用的类)

    参考资料:http://blog.csdn.net/vipzjyno1/article/details/24592591 非常感谢这个兄弟! 在android学习中,动作交互是软件中重要的一部分,其中 ...

  3. d3基础入门一-选集、数据绑定等核心概念

    引入D3 D3下载,本文下载时的版本为6.5.0 mkdir d3.6.5.0 unzip --help unzip d3.zip -d d3.6.5.0/ ls d3.6.5.0/ API.md C ...

  4. Advanced C++ | Virtual Constructor

    Can we make a class constructor virtual in C++ to create polymorphic objects? No. C++ being static t ...

  5. UILabel总结

    UILabel 能显示文字,不能直接通过addTarget...方法监听点击 1. 常见属性 @property(nonatomic,copy) NSString *text; 显示文字 @prope ...

  6. 小程序的事件 bindtap bindinput

    一.bindtap事件 在wxml文件里绑定: <view class='wel-list' bindtap='TZdown'> <image src="/images/w ...

  7. 【HarmonyOS】【多线程与并发】EventHandler

    EventHandler与EventRunner EventHandler相关概念 ● EventHandler是一种用户在当前线程上投递InnerEvent事件或者Runnable任务到异步线程上处 ...

  8. centos部署配置gogs代码仓库

    目录 一.简介 二.部署 三.网页配置 一.简介 Gogs的目标是打造一个最简单.最快速和最轻松的方式搭建自助Git服务.使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的 ...

  9. LuoguP7714 「EZEC-10」排列排序 题解

    Content 给定一个 \(1\sim n\) 的一个排列 \(p\),你每次可以选择一个区间 \([l,r]\) 并花费 \(r-l+1\) 的代价将下标在这个区间内的所有数升序排序,求使得排列 ...

  10. 初识requests

    Make a Request 一开始要导入 Requests 模块: >>> import requests 然后,尝试获取某个网页.本例子中,我们来获取 Github 的公共时间线 ...