centos7环境搭建Eureka-Server注册中心集群
目的:测试和线上使用这套独立的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注册中心集群的更多相关文章
- SpringCloud之Eureka(注册中心集群篇)
一:集群环境搭建 第一步:我们新建两个注册中心工程一个叫eureka_register_service_master,另一个叫eureka_register_service_backup eureka ...
- 【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)
上一篇讲解了spring注册中心(eureka),但是存在一个单点故障的问题,一个注册中心远远无法满足实际的生产环境,那么我们需要多个注册中心进行集群,达到真正的高可用.今天我们实战来搭建一个Eure ...
- SpringCloud之Eureka(注册中心集群篇)(三)
一:集群环境搭建 第一步:我们新建两个注册中心工程一个叫eureka_register_service_master.另外一个叫eureka_register_service_backup eurek ...
- Linux Centos7 环境搭建Docker部署Zookeeper分布式集群服务实战
Zookeeper完全分布式集群服务 准备好3台服务器: [x]A-> centos-helios:192.168.19.1 [x]B-> centos-hestia:192.168.19 ...
- springCloud系列教程01:Eureka 注册中心集群搭建
springCloud系列教程包含如下内容: springCloud系列教程01:Eureka 注册中心集群搭建 springCloud系列教程02:ConfigServer 配置中心server搭建 ...
- spring cloud 学习(2) - eureka server注册中心高可用及安全认证
接上节继续,注册中心单点肯定是不牢靠的,可以参考下面的方案做成注册中心集群: 弄成3个节点,每个节点向其它节点注册,这样只要集群中有一个节点正常工作即可.为了方便在本机弄出这种效果,我们先修改下hos ...
- SpringCloud Eureka(注册中心集群)
多个注册中心,其实用不同的配置对应 不同的端口号注册就行了. 注册中心自己也是个服务,看看之前的单个注册中心是怎么样的呢? server: port: 8888 # 服务端口eureka: insta ...
- 一个线上问题的思考:Eureka注册中心集群如何实现客户端请求负载及故障转移?
前言 先抛一个问题给我聪明的读者,如果你们使用微服务SpringCloud-Netflix进行业务开发,那么线上注册中心肯定也是用了集群部署,问题来了: 你了解Eureka注册中心集群如何实现客户端请 ...
- eureka注册中心集群
注册中心集群: 思想:让一个eureka注册中心 注册到 另一个eureka注册中心上去即A注册到B,B注册到A 注册中心配置: 1:端口号不同2:应用名称相同3:相互注册
随机推荐
- CodeForces-884D:Boxes And Balls(合并石子)
Ivan has n different boxes. The first of them contains some balls of n different colors. Ivan wants ...
- 201响应为什么进了AJAX error回调函数
明明AJAX发送请求成功,但是后端返回的不是200,而是201,结果进了error的回调函数,想这种情况,只需要把“dataType:"json",改成dataType:" ...
- node安装升级npm
安装npm npm上有很多优秀的nodejs包,来解决常见的一些问题,比如用node-mysql,就可以方便通过nodejs链接到mysql,进行数据库的操作 在开发过程往往会需要用到其他的包,使用n ...
- html meta标签使用
HTML语言标准注释:meta标签是对网站发展非常重要的标签,它可以用于鉴别作者,设定页面格式,标注内容提要和关键字,以及刷新页面等等. Google在2009年就宣布在搜索算法中不再使用元关键词或者 ...
- UI:数据库练习、滤镜效果
相机处理滤镜效果 滤镜主要使用在相机的美颜. #import "ViewController.h" #import "ImageUtil.h" #import ...
- pymssql读取varchar字段中文显示乱码的问题分析
问题 用python的pymssql模块读取旧业务系统后台SQL Server 2000数据库展示数据为乱码 开发环境 操作系统:windows 8 数据库 MS SQL Server 2000,默认 ...
- C++ 指针p1 p2,p1-p2 与*p1-*p2的区别
p1-p2 指 指针的地址值相减,计算两个指针之间的偏移量 *p1-*p2 指 指针指向的内存地址里面存的数值相减
- SpringIOC 二—— 容器 和 Bean的深入理解
上文:Spring IOC 一--容器装配Bean的简单使用 上篇文章介绍了 Spring IOC 中最重要的两个概念--容器和Bean,以及如何使用 Spring 容器装配Bean.本文接着记录 S ...
- poj 2774 Long Long Message【SA】
把两个串接到一起求一个SA,然后找最大的sa[i]和sa[i-1]不是一个串的he[i] #include<iostream> #include<cstdio> #includ ...
- iSCSI 原理和基础使用
终于完成最后一篇了,一上午的时间就过去了. 下文主要是对基本操作和我对iSCSI的理解,网上有很多iSCSI原理,在这里我就不写了,请自行学习. 这篇文章仅对iSCSI的很多误解做一次梳理,你必须对所 ...