1. 程式人生 > >【微服務架構】SpringCloud之Eureka(註冊中心叢集篇)(三)

【微服務架構】SpringCloud之Eureka(註冊中心叢集篇)(三)

SpringCloudbackup

 上一篇講解了spring註冊中心(eureka),但是存在一個單點故障的問題,一個註冊中心遠遠無法滿足實際的生產環境,那麼我們需要多個註冊中心進行叢集,達到真正的高可用。今天我們實戰來搭建一個Eureka叢集。

 一:叢集環境搭建

    第一步:我們新建兩個註冊中心工程一個叫eureka_register_service_master、另外一個叫eureka_register_service_backup

eureka_register_service_master的application.properties配置如下

    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配置如下

    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

    裡面程式碼內容是一樣的

       
        @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命令啟動

         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修改下

 eureka.client.serviceUrl.defaultZone=http://master:7998/eureka/,http://backup:7999/eureka/,

 當然也可以繫結一個地址,eureka.client.serviceUrl.defaultZone=http://master:7998/eureka/  這兩種繫結都可以

 三:叢集理解

 雖然上面我們以雙節點作為例子,但是實際上因負載等原因,我們往往可能需要在生產環境構建多於兩個的Eureka Server節點。那麼對於如何配置serviceUrl來讓叢集中的服務進行同步,需要我們更深入的理解節點間的同步機制來做出決策。我們通過一張圖來理解叢集

 文章來源:http://tulingxueyuan.cn

  未完待續。。。