【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)
上一篇讲解了spring注册中心(eureka),但是存在一个单点故障的问题,一个注册中心远远无法满足实际的生产环境,那么我们需要多个注册中心进行集群,达到真正的高可用。今天我们实战来搭建一个Eureka集群。
一:集群环境搭建
第一步:我们新建两个注册中心工程一个叫eureka_register_service_master、另外一个叫eureka_register_service_backup
eureka_register_service_master的application.properties配置如下
|
1
2
3
4
5
6
7
8
|
server.port=7998 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false spring.application.name=eureka-server eureka.instance.hostname=master eureka.client.serviceUrl.defaultZone=http://backup:7999/eureka/ #这里配置的是backup的地址 eureka_register_service_backup的application.properties配置如下 |
eureka_register_service_backup的application.properties配置如下
|
1
2
3
4
5
6
7
|
server.port=7999 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false spring.application.name=eureka-server eureka.instance.hostname=backup #这里配置的是master的地址 eureka.client.serviceUrl.defaultZone=http://master:7998/eureka/ |
上面的配置端口分别是
master端口是7998
backupr端口是7999
由于我用的是同一台机器所以需要绑定下host
127.0.0.1 master
127.0.0.1 backup
第二步:添加启动文件分别是ApplicationMaster.java,ApplicationBackUp.java
里面代码内容是一样的
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
@EnableEurekaServer @SpringBootApplication public class ApplicationMaster { public static void main(String[] args) { SpringApplication.run(ApplicationMaster.class, args); } } @EnableEurekaServer @SpringBootApplication public class ApplicationBackUp { public static void main(String[] args) { SpringApplication.run(ApplicationBackUp.class, args); } } |
第三步:启动
如果是jar启动需要 加参数 --spring.profiles.active=matser或者 --spring.profiles.active=backup
第一种方法是通过jar命令启动
|
1
2
3
|
java -jar eureka_register_service_matser-1.0.0.jar --spring.profiles.active=matser java -jar eureka_register_service_backup-1.0.0.jar --spring.profiles.active=backup |
第二种是通过eclipse点击右键Run As 启动
需要加入参数如下图

第四步:查看界面
分别打开http://127.0.0.1:7998/ 和 http://127.0.0.1:7999/ 如下图


通过上图可以看
端口7998是matser它的registered-replicas指向了http://backup:7999/eureka/
端口7999是backup它的registered-replicas指向了http://master:7999/eureka/
注:有人会问为什么unavailable-replicas http://backup:7999/eureka/或者http://master:7999/eureka/ 那是因为我的配置吧
eureka.client.register-with-eureka设置成false 改成true就可以
二:服务端注册
设置了多个注册中心后,我们的服务配置不需要太多改动只需将biz-service-0工程的application.properties的serviceUrl修改下
|
1
|
eureka.client.serviceUrl.defaultZone=http://master:7998/eureka/,http://backup:7999/eureka/, |
当然也可以绑定一个地址,eureka.client.serviceUrl.defaultZone=http://master:7998/eureka/ 这两种绑定都可以
三:集群理解
虽然上面我们以双节点作为例子,但是实际上因负载等原因,我们往往可能需要在生产环境构建多于两个的Eureka Server节点。那么对于如何配置serviceUrl来让集群中的服务进行同步,需要我们更深入的理解节点间的同步机制来做出决策。我们通过一张图来理解集群

【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)的更多相关文章
- springCloud系列教程01:Eureka 注册中心集群搭建
springCloud系列教程包含如下内容: springCloud系列教程01:Eureka 注册中心集群搭建 springCloud系列教程02:ConfigServer 配置中心server搭建 ...
- 一个线上问题的思考:Eureka注册中心集群如何实现客户端请求负载及故障转移?
前言 先抛一个问题给我聪明的读者,如果你们使用微服务SpringCloud-Netflix进行业务开发,那么线上注册中心肯定也是用了集群部署,问题来了: 你了解Eureka注册中心集群如何实现客户端请 ...
- SpringCloud Eureka(注册中心集群)
多个注册中心,其实用不同的配置对应 不同的端口号注册就行了. 注册中心自己也是个服务,看看之前的单个注册中心是怎么样的呢? server: port: 8888 # 服务端口eureka: insta ...
- eureka注册中心集群
注册中心集群: 思想:让一个eureka注册中心 注册到 另一个eureka注册中心上去即A注册到B,B注册到A 注册中心配置: 1:端口号不同2:应用名称相同3:相互注册
- Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!
Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...
- SpringCloud微服务小白入门之Eureka注册中心和服务中心搭建示例
一.注册中心配置文件 代码复制区域: spring: application: name: spring-cloud-server server: port: 7000 eureka: instanc ...
- SpringCloud之Eureka(注册中心集群篇)
一:集群环境搭建 第一步:我们新建两个注册中心工程一个叫eureka_register_service_master,另一个叫eureka_register_service_backup eureka ...
- SpringCloud之Eureka(注册中心集群篇)(三)
一:集群环境搭建 第一步:我们新建两个注册中心工程一个叫eureka_register_service_master.另外一个叫eureka_register_service_backup eurek ...
- 2、eureka注册中心集群
1. Eureka作为spring cloud的服务发现与注册中心,在整个的微服务体系中,处于核心位置.单机模式下的eureka服务,显然不能满足高可用的实际生产环境,这就要求配置一个能够应对各种突发 ...
随机推荐
- 千万别在UI线程上调用Control.Invoke和Control.BeginInvoke,因为这些是依然阻塞UI线程的,造成界面的假死
原文地址:https://www.cnblogs.com/wangchuang/archive/2013/02/20/2918858.html .c# Invoke和BeginInvoke 区别 Co ...
- 接口测试基础operation
Jmeter接口测试 一般分五个步骤: (1)添加线程组 (2)添加http请求 (3)在http请求中写入接入url.路径.请求方式和参数 (4)添加查看结果树 (5)调用接口.查看返回值
- firefox 插件 取消认证签名
Firebug Tab Mix plus :系统退出自动保存tab List. tab mix options>Session>start/exit>when browse ...
- c++builder 读写文件类
c++builder 读写文件类 TStreamReader.TStreamWriter读取一行 http://docwiki.embarcadero.com/CodeExamples/XE8/en/ ...
- 【2018沈阳赛区网络预选赛J题】Ka Chang【分块+DFS序+线段树】
题意 给出一个有根树(根是1),有n个结点.初始的时候每个结点的值都是0.下面有q个操作,操作有两种,操作1.将深度为L的点的值全部增加X.操作2.查询以x为根的子树的结点值得和. 其中N,Q< ...
- 获取时间【NSDate】
[Objective-C]NSDate详解及获取当前时间等常用操作 博客分类: Objective-C objective-cnsdate NSDate类用于保存时间值,同时提供了一些方法来处理一些 ...
- H5 css学习
p{text-indent:2em;}段前空两格 段落排版--行间距(行高) p{line-height:1.5em;} 段落排版--中文字间距.字母间距 h1{ letter-spaci ...
- PHP获取当前文件路径
__FILE__ 是当前路径+文件名dirname(__FILE__)返回当前文件路径的路径部分 例如当前文件是 /home/data/demo/demo.php ,则 __FILE__ 得到的就是完 ...
- DNS处理模块dnspython
一.介绍 官网:http://www.dnspython.org/ https://pypi.org/project/dnspython/ dnspython是Python的DNS工具包.它支持几乎所 ...
- Tomcat内存溢出及大小调整
一.在使用Java程序从数据库中查询大量的数据或是应用服务器(如tomcat.jboss,weblogic)加载jar包时会出现java.lang.OutOfMemoryError异常.这主要是由于应 ...