在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,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. 写出一条Sql语句:取出表Customer中第31到第40记录(SQLServer,以自动增长的Id作为主键,注意:Id可能不是连续的。

    select top 10 * from (select ROW_NUMBER() over(order by Id) as rows,* from Customer) as C where C.ro ...

  2. python︱字符操作杂记(split、zip...)

    字符串特别是中文在python里面还是有很多需要注意的地方. . . . 一.字符串 . . 1.字符串连接 方式一:单个字符相连用 + 就可以: 方式二:list组内相连,可以用join: 方式三: ...

  3. Error Code: 1318. Incorrect number of arguments for PROCEDURE student.new_procedure; expected 0, got

    1.错误描述 13:58:20 call new_procedure('2000','zhangsan') Error Code: 1318. Incorrect number of argument ...

  4. MySQL插入数据时插入无效的列

    1.错误描述 com.mysql.jdbc.exception:jdbc4.MySQLSyntaxErrorException:Unknown column 'man' in 'field list' ...

  5. EJB相关的面试题

    1.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别. (1)EJB包括Session Bean.Ent ...

  6. JDBC连接池(三)DBCP连接池

    JDBC连接池(三)DBCP连接池 在前面的随笔中提到 了  1.JDBC自定义连接池  2. C3P0连接池 今天将介绍DBCP连接池 第一步要导入jar包   (注意:mysql和mysql 驱动 ...

  7. 小白进阶之Scrapy(基于Scrapy-Redis的分布式以及cookies池)

    首先我们更新一下scrapy版本.最新版为1.3 再说一遍Windows的小伙伴儿 pip是装不上Scrapy的.推荐使用anaconda .不然还是老老实实用Linux吧. conda instal ...

  8. winfrom如何在listview中添加控件

    private Button btn = new Button(); private void Form1_Load(object sender, EventArgs e) { ListViewIte ...

  9. Keras FAQ: 常见问题解答

    Keras官方中文版文档 如何引用 Keras? 如何在 GPU 上运行 Keras? 如何在多 GPU 上运行 Keras 模型? "sample", "batch&q ...

  10. [HNOI2010]CHORUS 合唱队

    题面 Bzoj Sol 简单\(DP\) # include <bits/stdc++.h> # define IL inline # define RG register # defin ...