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

 

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

posted @ 2018-08-14 20:18  华丽D转身  阅读(337)  评论(0编辑  收藏  举报