在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,Eureka
高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就可以形成一组互相注册的服务注册中心,已实现服务清单的互相同步,达到高可用效果,下面的示例构建一个服务注册中心集群,在配置单个服务注册中心的基础上进行扩展,示例代码如下:

  • 创建 application-server1.properties 作为服务注册中心集合的 server1 注册中心,并将 serviceUrl 指向 server2 注册中心,配置如下:

    server.port=1111

    spring.application.name=eureka-server

    eureka.instance.hostname=eurekaserver1

    eureka.client.service-url.defaultZone=http://eurekaserver2:1112/eureka

  • 创建 application-server2.properties 作为服务注册中心集合的server2 注册中心,并将serviceUrl指向server1 注册中心,配置如下:

    server.port=1112

    spring.application.name=eureka-server

    eureka.instance.hostname=eurekaserver2

    eureka.client.service-url.defaultZone=http://eurekaserver1:1111/eureka

  • 在 /etc/hosts
    文件中添加对
    eurekaserver1 和 eurekaserver2 的域名解析,代码如下:

    127.0.0.1 eurekaserver1

    127.0.0.1 eurekaserver2

  • 通过
    spring.profiles.active
    属性来分别启动 eurekaserver1 和 eurekaserver2:

    java -jar eureka-server-1.0.0.jar --spring.profiles.active=server1

    java -jar eureka-server-1.0.0.jar --spring.profiles.active=server2

    启动之后访问
    http://localhost:1111
    ,可以看到
    registered-replicas
    中已经有
    eurekaserver2 的注册中心,如下图所示:

  • 在设置了多节点的服务注册中心之后,服务提供方还需要做一些简单的配置才能将服务注册到
    Eureka
    Server
    集群中,在前面的
    hello-service
    为例,修改
    application.properties
    配置文件,如下所示:

    spring.application.name=hello-service

    eureka.client.service-url.defaultZone=http://eurekaserver1:1111/eureka/,http://eurekaserver2:1112/eureka

    上面的配置主要对
    eureka.client.service-url.defaultZone
    属性进行了修改,将注册中心指向了之前我们搭建的服务注册中心集群,启动服务后,可以看到在
    eurekaserver1 和
    eurekaserver2 都进行了注册。

笔记:Spring Cloud Eureka 高可用注册中心的更多相关文章

  1. Spring Cloud Eureka 高可用注册中心

    参考:<<spring cloud 微服务实战>> 在微服务架构这样的分布式环境中,各个组件需要进行高可用部署. Eureka Server 高可用实际上就是将自己作为服务向其 ...

  2. spring cloud 系列第2篇 —— eureka 高可用注册中心的搭建 (F版本)

    源码仓库地址:https://github.com/heibaiying/spring-samples-for-all 一.项目结构 eureka-server为服务注册中心,负责服务的管理: eur ...

  3. spring cloud实战 1-高可用注册中心

    创建父maven项目 提交代码至GitHub 创建eureka-server-1 项目搭建两种方式: 父pom中继承spring-boot-starter-parent,子pom中直接结成父pom.该 ...

  4. eureka高可用注册中心

    Eureka高可用注册中心 两个配置文件: application-peer1.properties application-peer2.properties 都需要加上 eureka.client. ...

  5. Spring cloud搭建Eureka高可用注册中心

    注册中心在微服务中是必不可少的一部分,主要用来实现服务自治的功能,本文则主要记载使用Netflix提供的Eureka作为注册中心,来实现服务自治的功能. 实际上Eureka的集群搭建方法很简单:每一台 ...

  6. spring cloud eureka高可用

    记录下自己踩的坑 spring cloud eureka的高可用网上的教程大致分为两种,一种是两两互相注册,一种是三个互相注册. 1.两两互相注册 普通服务的注册写法都是http://peer1/eu ...

  7. Spring Cloud Eureka高可用落地实战

    一.原理 如图所示,多台Server端之间相互注册(这里以两台Server为例),Client端向所有的Server端注册. 二.Server端配置 1. 添加依赖 <dependency> ...

  8. 3.spring cloud eureka 高可用

    1.目的 防止某一台服务器宕机 通常通过多台EUREKA来为客户端进行注册,客户也进行注册 2.开启三台EUREKA 三天EUREKA分别对应端口 8761 8762 8763 配置文件如下 EURE ...

  9. Spring cloud Eureka高可用 - 配置

    个人项目源码: https://github.com/easonstudy/cloud-demo/tree/master/eureka-peer-server Window 7 修改hosts  ht ...

随机推荐

  1. eclipse hadoop1.2.0配置及wordcount运行

    "error: failure to login"问题 http://www.cnblogs.com/xia520pi/archive/2012/05/20/2510723.htm ...

  2. 【java学习笔记】正则表达式

    一.正则表达式 1.预定义字符集  . 表示任意一个字符 \d 表示任意一个数字 \w 表示任意一个单词字符(只能是数字.字母.下划线) \s 表示任意一个空白字符(\t\r\n\f\x0B) \D ...

  3. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 52: invalid continuation byte

    代码: df_w = pd.read_table( r'C:\Users\lab\Desktop\web_list_n.txt', sep=',', header=None) 当我用pandas的re ...

  4. 【前端】Vue2全家桶案例《看漫画》之三、引入vuex

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_3.html 项目github地址:https://github.com/shamoyuu/ ...

  5. WebService之CXF注解之五(配置文件)

    1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...

  6. log4j:ERROR setFile(null,true) call failed

    1.错误描述 log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: at java.io.FileOut ...

  7. XmlDocument 转换为xml字符串

    static public string XMLDocumentToString(XmlDocument doc)     {         MemoryStream stream = new Me ...

  8. 芝麻HTTP:Scrapy小技巧-MySQL存储

    这两天上班接手,别人留下来的爬虫发现一个很好玩的 SQL脚本拼接. 只要你的Scrapy Field字段名字和 数据库字段的名字 一样.那么恭喜你你就可以拷贝这段SQL拼接脚本.进行MySQL入库处理 ...

  9. freemarker中的if...elseif...else语句(七)

    freemarker中的if...elseif...else语句 1.设计示例 <#if student.studentAge lt 12> ${student.studentName}不 ...

  10. 快速开发 HTML5 WebGL 的 3D 斜面拖拽生成模型

    前言 3D 场景中的面不只有水平面这一个,空间是由无数个面组成的,所以我们有可能会在任意一个面上放置物体,而空间中的面如何确定呢?我们知道,空间中的面可以由一个点和一条法线组成.这个 Demo 左侧为 ...