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. winxp 关闭445端口

    关闭445端口的方法方法很多,但是我比较推荐以下这种方法: 修改注册表,添加一个键值 Hive: HKEY_LOCAL_MACHINE Key: System\Controlset\Services\ ...

  2. Android 高级UI组件(三)

    一.popupWindow 1.AlertDialog和PopupWindow最关键的区别是AlertDialog不能指定显示位置,只能默认显示在屏幕最中间(当然也可以通过设置WindowManage ...

  3. [学习总结]6、Android异步消息处理机制完全解析,带你从源码的角度彻底理解

    开始进入正题,我们都知道,Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃.相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一 ...

  4. typora使用快捷键

    1. Ctrl+/ 切换源码模式2. ```css 选择语言 回车.4. `code` ctrl+shit+` 5. # 1号标题 ctrl+1 ### 3号标题 ctrl+3 ######6号标题 ...

  5. 【Linux】【Basis】网络

    Linux网络属性配置                           计算机网络:          TCP/IP:协议栈(使用)             ISO,OSI:协议栈(学习)     ...

  6. 【Office】【Excel】将多个工作薄合为一个工作薄

    前提:工作薄首行不能有合并的单元格 准备工作:将要合并的工作簿放在一个文件夹里面,文件夹中不能有乱七八糟的东西,只能有你要合并的工作薄 操作步骤:在此文件夹下创建Excel表格并打开,按下alt+F1 ...

  7. Nginx支持php

    目录 一.简介 二.配置 三.测试 四.参数 一.简介 Nginx本身只能解析html文件,但有些网页是php写的,就需要Nginx连接php,将网页解析成html再发给客户端. 配置中将.php 结 ...

  8. Java网络多线程编程:对象流错误导致Connection reset

    Java网络多线程编程--对象流错误导致Connection reset 在老韩的网络多线程编程实战项目中,发生了如下报错: 服务器端和客户端均发生了报错,在确定相应对象流代码完全没有问题之后,回归定 ...

  9. 30个类手写Spring核心原理之动态数据源切换(8)

    本文节选自<Spring 5核心原理> 阅读本文之前,请先阅读以下内容: 30个类手写Spring核心原理之自定义ORM(上)(6) 30个类手写Spring核心原理之自定义ORM(下)( ...

  10. IDEA启动报错:Error:java: Compilation failed: internal java compiler error

    检查是否一致