上一篇讲解了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来让集群中的服务进行同步,需要我们更深入的理解节点间的同步机制来做出决策。我们通过一张图来理解集群

源码地址:https://github.com/zhp8341/SpringCloudDemo

【微服务架构】SpringCloud之Eureka(注册中心集群篇)(三)的更多相关文章

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

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

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

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

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

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

  4. eureka注册中心集群

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

  5. Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

    Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...

  6. SpringCloud微服务小白入门之Eureka注册中心和服务中心搭建示例

    一.注册中心配置文件 代码复制区域: spring: application: name: spring-cloud-server server: port: 7000 eureka: instanc ...

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

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

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

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

  9. 2、eureka注册中心集群

    1. Eureka作为spring cloud的服务发现与注册中心,在整个的微服务体系中,处于核心位置.单机模式下的eureka服务,显然不能满足高可用的实际生产环境,这就要求配置一个能够应对各种突发 ...

随机推荐

  1. Confluence 5.4.2安装

    默认安装路径 /opt/atlassian/confluence/bin Confluence是Atlassian公司出品的团队协同与知识管理工具. Confluence是一个专业的企业知识管理与协同 ...

  2. oracle查看登录到oracle服务器的客户端ip

    1. 在sys模式下创建一个表,用于记录客户端登录数据库服务器的详细信息. 1 create table login_history 2 ( 3 username varchar2(60), --用户 ...

  3. 经验总结:WebBrowser自动点击弹出提示框alert、弹出对话框confirm、屏蔽弹出框、屏蔽弹出脚本错误的解决办法

    经验总结:WebBrowser自动点击弹出提示框alert.弹出对话框confirm.屏蔽弹出框.屏蔽弹出脚本错误的解决办法 网上有好多解决方法,可是不一定好使,本人经过多次试验,针对WebBrows ...

  4. WebSocket实践——Java实现WebSocket的两种方式

    什么是 WebSocket? 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信 ...

  5. 双 MySQL 启动、停止脚本

    5.5 启动 #!/bin/bash # author: Wang Xiaoqiang # func: Start MySQL 5.5 pid=`netstat -lnpt | awk -F '[ / ...

  6. jena读取和解析本体文件

    使用jena开发本体应用程序时,首先需要对我们利用本体构建工具,如protege等,构建的本体文件,如owl.rdf等读取并解析得到本体模型.下面给出相应的代码,不对的地方请指正. (基于jena 2 ...

  7. win7+jdk环境变量配置

    进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:1.下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是: ...

  8. Hadoop Yarn Capacity Scheduler

    Capacity 调度器配置 <property> <name>yarn.resourcemanager.scheduler.class<name> <val ...

  9. Apache Hive (七)Hive的DDL操作

    转自:https://www.cnblogs.com/qingyunzong/p/8723271.html 库操作 1.创建库 语法结构 CREATE (DATABASE|SCHEMA) [IF NO ...

  10. Apache Hive (五)DbVisualizer配置连接hive

    转自:https://www.cnblogs.com/qingyunzong/p/8715250.html 一.安装DbVisualizer 下载地址http://www.dbvis.com/ 也可以 ...