1. 程式人生 > >【springcloud】Eureka的服務端,客戶端及高可用

【springcloud】Eureka的服務端,客戶端及高可用

目錄

一、Eureka是什麼?

        Eureka是基於REST(Representational State Transfer)服務,主要以AWS雲服務為支撐,提供服務發現並實現負載均衡和故障轉移。我們稱此服務為Eureka服務。Eureka提供了Java客戶端元件,Eureka Client,方便與服務端的互動。客戶端內建了基於round-robin實現的簡單負載均衡。在Netflix,為Eureka提供更為複雜的負載均衡方案進行封裝,以實現高可用,它包括基於流量、資源利用率以及請求返回狀態的加權負載均衡。

二、構建Eureka Server

  1. 新建工程,選擇Spring Initializr
  2. 輸入GroupId,Artifact
  3. 選擇Cloud Discovery--Eureka Server,選擇springboot的版本
  4. 選擇專案存放位置,finish
  5. 在啟動類中新增@EnableEurekaServer註解
  6. package cn.aaralyn.eureka;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(EurekaApplication.class, args);
    	}
    }

    application.yml中配置

    # 設定埠號
    server:
      port: 8761
    
    eureka:
      client:
        # 該專案自身也需要註冊到eureka註冊中心,此配置可以關閉自身的註冊
        register-with-eureka: false
        # 設定需要註冊到的地址
        service-url:
          defaultZone: http://localhost:8761/eureka
      server:
        # 關閉自我保護,客戶端不線上,將不在服務端顯示
        enable-self-preservation: false
    
    #設定應用名稱
    spring:
      application:
        name: eureka-server
  7. 啟動專案,開啟http://localhost:8761/eureka

三、構建Eureka Client

  1. 建立專案與建立服務專案類似,在第三步中由選擇Eureka Server改為Eureka Discovery,其他一致
  2. 在啟動類中新增@EnableEurekaClient註解
    package cn.aaralyn.eurekaclient;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    
    @SpringBootApplication
    @EnableEurekaClient
    public class EurekaClientApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(EurekaClientApplication.class, args);
    	}
    }
  3. application.yml中配置
    spring:
      application:
        name: eureka-client
    eureka:
      client:
        service-url:
          defaultZone: http://localhost:8761/eureka
  4. 先啟動服務端,再啟動客戶端,開啟http://localhost:8761/eureka,可以看到服務以及註冊進來了

四、Eureka的高可用

         Server之間:新增其他server的地址

         Client:在每個client的配置檔案中,新增所有server的地址