目的:测试和线上使用这套独立的Eureka-Server注册中心集群,目前3台虚拟机集群,后续可直接修改配置文件进行新增或减少集群机器。

系统环境:

Centos7x64

java8+(JDK1.8+)(java -version  确保java没问题。注意添加环境变量)

端口:8761

各peer节点分别为:

192.168.1.134  peer1

192.168.1.27   peer2

192.168.1.152  peer3

一 创建项目

注意!注意!注意 这里有个IDEA的坑

开始引入相关的 eureka-server的包,如下图

打开项目下 src/main/java/com.jinti.eureka2/Eureka2Application   按照步骤来,其中1,2需要自己手动敲代码。

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer

引入后可能需要下载相关依赖包,这个IDEA会自动完成。如果网络好就很快,如果没下载好可能会导致代码提示错误。

其中3, pom.xml我这边没修改过,是IDEA根据项目自动生成,基本上够用。

配置好src/main/java/resource里的项目,我们有3个peer,选一个application-peer1.properties为例,另外2个配置大同小异:

#spring.application.name 所有节点要一致,不会出现unavailable-replicas
spring.application.name=eureka-server
eureka.instance.hostname=192.168.1.134
spring.profiles.active=peer1
#如下一般不用修改
server.port=8761
eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true
#instance-id使得状态status显示为ip
eureka.instance.instance-id=${eureka.instance.hostname}:${server.port}
#defaultZone里使用的是eureka.instance.hostname,因为hostname是IP,然后注册中心就使用IP注册,不会出现unavailable-replicas
eureka.client.serviceUrl.defaultZone=http://192.168.1.27:8761/eureka/,http://192.168.1.152:8761/eureka/

其中需要更改的地方:

eureka.client.serviceUrl.defaultZone  里设置的IP是除了本身外的其他2个peer的IP和端口

eureka.instance.hostname 这里改为本机的IP,后续显示状态的时候用到。

spring.profiles.active 为节点昵称,不知道为什么我用IP,后面启动带参的时候不行,用peer或者其他昵称也不错。

其他说明:

因为做了集群相互发现和注册,如下设置为true

eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true

 依次分别设置好3个配置文件,分别启动3个节点在IDEA内测试,可参考:https://www.cnblogs.com/hfultrastrong/p/8549590.html

如果测试没有错就开始打包部署了。

二 maven打包jar运行和部署

如下图所示:

已编译: eureka2-0.0.1-SNAPSHOT.jar

已配置:eureka2-0.0.1-SNAPSHOT.jar\BOOT-INF\classes下

application-peer1.properties、 application-peer2.properties、application-peer3.properties

打包后就是一个完整的jar包,如上图5所示,存放于项目的target目录下。找到这个eureka2-0.0.1-SNAPSHOT.jar 就可以上传到peer机器上跑了。

各节点 分别 执行 对应的启动命令,因为application-peer*.properties里写固定了peer对应的机器

java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 &

java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2 &

java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3 &

比如peer1 对应机器 192.168.1.134,则在1.134这边执行,以此类推

java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 &

如果端口正常起来,因为其他节点还没起来,可能会报一下同步错误,等其他节点都起来就没问题了。

关闭: kill pid

网页访问 http://peerIP:8761,各节点replicas 分片正常即可。

三 后续修改,新增或减少eureka集群的机器

通过  修改eureka2-0.0.1-SNAPSHOT.jar\BOOT-INF\classes里的application-peer*.properties配置文件并覆盖即可。

完整的jar下载:

链接: https://pan.baidu.com/s/1cb0XYt3-sb3SAOzee0Q0nQ

提取码: 6ww8

好久没写文章,如有错误和建议请留言,谢谢!!

centos7环境搭建Eureka-Server注册中心集群的更多相关文章

  1. SpringCloud之Eureka(注册中心集群篇)

    一:集群环境搭建 第一步:我们新建两个注册中心工程一个叫eureka_register_service_master,另一个叫eureka_register_service_backup eureka ...

  2. 【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)

    上一篇讲解了spring注册中心(eureka),但是存在一个单点故障的问题,一个注册中心远远无法满足实际的生产环境,那么我们需要多个注册中心进行集群,达到真正的高可用.今天我们实战来搭建一个Eure ...

  3. SpringCloud之Eureka(注册中心集群篇)(三)

    一:集群环境搭建 第一步:我们新建两个注册中心工程一个叫eureka_register_service_master.另外一个叫eureka_register_service_backup eurek ...

  4. Linux Centos7 环境搭建Docker部署Zookeeper分布式集群服务实战

    Zookeeper完全分布式集群服务 准备好3台服务器: [x]A-> centos-helios:192.168.19.1 [x]B-> centos-hestia:192.168.19 ...

  5. springCloud系列教程01:Eureka 注册中心集群搭建

    springCloud系列教程包含如下内容: springCloud系列教程01:Eureka 注册中心集群搭建 springCloud系列教程02:ConfigServer 配置中心server搭建 ...

  6. spring cloud 学习(2) - eureka server注册中心高可用及安全认证

    接上节继续,注册中心单点肯定是不牢靠的,可以参考下面的方案做成注册中心集群: 弄成3个节点,每个节点向其它节点注册,这样只要集群中有一个节点正常工作即可.为了方便在本机弄出这种效果,我们先修改下hos ...

  7. SpringCloud Eureka(注册中心集群)

    多个注册中心,其实用不同的配置对应 不同的端口号注册就行了. 注册中心自己也是个服务,看看之前的单个注册中心是怎么样的呢? server: port: 8888 # 服务端口eureka: insta ...

  8. 一个线上问题的思考:Eureka注册中心集群如何实现客户端请求负载及故障转移?

    前言 先抛一个问题给我聪明的读者,如果你们使用微服务SpringCloud-Netflix进行业务开发,那么线上注册中心肯定也是用了集群部署,问题来了: 你了解Eureka注册中心集群如何实现客户端请 ...

  9. eureka注册中心集群

    注册中心集群: 思想:让一个eureka注册中心 注册到 另一个eureka注册中心上去即A注册到B,B注册到A 注册中心配置: 1:端口号不同2:应用名称相同3:相互注册

随机推荐

  1. Apache Maven的下载、安装、测试

    Apache Maven是个软件项目管理工具,基于项目对象模型(Project Object Model,POM)的概念,Maven可用来管理项目的依赖.编译.文档等信息. 使用Maven管理项目时, ...

  2. 命令行 sql 将结果导出到文件

    1. into outfile filename; Mysql查询结果导出为Excel的几种方法 mysql> use world; # 使用 mysql 自带的 world 数据库 mysql ...

  3. 伪元素 first-letter

    ::after, ::before, ::backdrop, ::first-letter,::first-line, ::selection(css3)是伪元素, :active, :focus,  ...

  4. 【旧文章搬运】Windows内核常见数据结构(内核对象)

    原文发表于百度空间,2008-7-23========================================================================== 继续学习,继 ...

  5. 注册CSDN账号的尴尬

    因为新浪博客这里代码显示不大好用,打算把关于编程和应用开发的东西改到那里去写,可是点击注册....   竟然要输入手机号,无法跳过.... 要知道,楼主现在可是在国外,压根没有可用于注册的手机号啊.. ...

  6. POJ 1384【完全背包】

    题意: 已知储蓄罐满时的质量f以及空时质量e, 有n种硬币,每种硬币的价值为p,质量为w, 求该储蓄罐中的最少有多少钱? 思路: 完全背包思想,问题是在一个重量下的最小价值 那么只要变一下符号就好了? ...

  7. SQLite3初级使用

    (1)SQL的指令格式 所有的SQL指令都是以分号(;)结尾的.如果遇到两个减号(--)则代表注解,sqlite3会略过去. (2)建立资料表 假设我们要建一个名叫film的资料表,只要键入以下指令就 ...

  8. Jmeter逻辑控制器操作,附栗子

    jmeter中的逻辑控制器确定采样器的执行顺序.右键线程组-->添加-->逻辑控制器. 一.简单控制器 简单控制器对JMeter如何处理添加到其中的采样器没有影响.只是方便我们做分组命名. ...

  9. luogu P1095守望者的逃离【dp】By cellur925

    题目传送门 考虑dp,设f[i]表示到第i时间,能到达的最远距离.因为题目涉及了三种操作:1,补血消耗魔法值:2, 等待增加魔法值:3,直接向前走.而1,3和2,3的操作是可以同时进行没有冲突的,所以 ...

  10. chrome调试中resource改到application中了

    如题,看视频的时候发现在resource下面查看cookie,但是自己试的时候发现没有了这个工具, google之后发现原来该位置了