1. 程式人生 > >EurekaServer服務註冊中心建立及微服務註冊進Eureka服務

EurekaServer服務註冊中心建立及微服務註冊進Eureka服務

                         EurekaServer服務註冊中心建立及微服務註冊進Eureka服務

 

目錄

一、Eureka簡介

二、EurekaServer的建立

三、將微服務註冊到Eureka服務中心


一、Eureka簡介

Eureka是Netflix開發的服務發現框架,本身是一個基於REST的服務,主要用於定位執行在AWS域中的中間層服務,以達到負載均衡和中間層服務故障轉移的目的。SpringCloud將它整合在其子專案spring-cloud-netflix中,以實現SpringCloud的服務發現功能。

Eureka包含兩個元件:Eureka Server和Eureka Client。

Eureka Server提供服務註冊服務,各個節點啟動後,會在Eureka Server中進行註冊,這樣EurekaServer中的服務登錄檔中將會儲存所有可用服務節點的資訊,服務節點的資訊可以在介面中直觀的看到。

Eureka Client是一個java客戶端,用於簡化與Eureka Server的互動,客戶端同時也就是一個內建的、使用輪詢(round-robin)負載演算法的負載均衡器。

在應用啟動後,將會向Eureka Server傳送心跳,預設週期為30秒,如果Eureka Server在多個心跳週期內沒有接收到某個節點的心跳,Eureka Server將會從服務登錄檔中把這個服務節點移除(預設90秒)。

Eureka Server之間通過複製的方式完成資料的同步,Eureka還提供了客戶端快取機制,即使所有的Eureka Server都掛掉,客戶端依然可以利用快取中的資訊消費其他服務的API。綜上,Eureka通過心跳檢查、客戶端快取等機制,確保了系統的高可用性、靈活性和可伸縮性。

 

 

二、EurekaServer的建立

2.1、在pom.xml檔案中新增eureka的Maven座標:

        <!-- eureka-server服務端 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>

2.2、在yml檔案中增加Eureka的配置資訊:

server:
  port: 8761 #埠

eureka:
  server:
    enable-self-preservation: false
  instance:
    hostname: localhost #eureka服務端的例項名
  client:
    registerWithEureka: false #false表示不向註冊中心註冊自己
    fetchRegistry: false #false表示自己端就是註冊中心,我的職責是維護服務例項,並不需要去檢索服務。
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka  #設定與Eureka Server交行的地址查詢服務和註冊服務

2.3、在啟動類上標註啟動該eureka元件的相關注解標籤@EnableEurekaServer:

@EnableEurekaServer //Eureka服務啟動類,接受其他微服務註冊進來。
@SpringBootApplication
public class SpringCloudEurekaApplication {

	/**
	 * The entry point of application.
	 *
	 * @param args the input arguments
	 */
	public static void main(String[] args) {
		SpringApplication.run(SpringCloudEurekaApplication .class, args);
	}
}

2.4、測EurekaServer的建立:

以上:完成了EurekaServer已經建立完成。

三、將微服務註冊到Eureka服務中心

3.1、在微服務的pom.xml檔案中新增如下配置(引入Eureka-Client端):

    <!--將微服務provider側註冊進Eureka-->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>

3.2、在微服務的yml檔案中新增如下配置:

eureka:
  client:  #客戶端註冊進Eureka服務列表內
    serviceUrl:
      defaultZone: http://localhost:8761/eureka

3.3、在微服務啟動類上標註Eureka客戶端註解標籤(@EnableEurekaClient):

@EnableEurekaClient  //本服務啟動後會自動註冊進eureka服務
@SpringBootApplication
public class SpringCloudUacApplication {

	/**
	 * The entry point of application.
	 *
	 * @param args the input arguments
	 */
	public static void main(String[] args) {
		SpringApplication.run(SpringCloudUacApplication .class, args);
	}

3.4、啟動測試微服務註冊到Eureka服務列表的結果:

以上:SpringCloudUacApplication已經註冊進Eureka服務中了。