SpringCloud註冊中心(一)
阿新 • • 發佈:2019-01-03
簡介:
Eureka是Netflix開發的服務發現框架,本身是一個基於REST的服務,主要用於定位執行在AWS域中的中間層服務,以達到負載均衡和中間層服務故障轉移的目的。SpringCloud將它整合在其子專案spring-cloud-netflix中,以實現SpringCloud的服務發現功能。
Eureka分為兩個元件:server(服務端)和client(客戶端)
註冊中心節點預設時間:Eureka Server傳送心跳,預設週期為30秒,如果Eureka Server在多個心跳週期內沒有接收到某個節點的心跳,Eureka Server將會從服務登錄檔中把這個服務節點移除(預設90秒)。
eureka server 優點: 通過複製的方式完成資料的同步,Eureka還提供了客戶端快取機制,即使所有的Eureka Server都掛掉,客戶端依然可以利用快取中的資訊消費其他服務的API。綜上,Eureka通過心跳檢查、客戶端快取等機制,確保了系統的高可用性、靈活性和可伸縮性。
本章例項為eureka註冊中心的發現
eureka版本:1.5
工具:idea
工程:maven
環境:jdk1.8
例項流程如下
一:建一個以maven為依賴的父專案用來管理多個子專案
然後下一個視窗:Projectname表示專案名稱 Projectlocation
二:新建springboot專案作為eurekaserver(註冊中心)
在剛剛建立好的父工程名稱右鍵:New~Model
開啟作為註冊中心的子工程專案
在resources下重新命名application.properties ~~~~改名為application.yml
配置如下:
##埠號 server: port: 8889 ##服務ip eureka: instance: hostname: 127.0.0.1 client: #表示本身不被eureka註冊中心發現與註冊 register-with-eureka: false fetch-registry: false #建立eureka-server註冊中心的地址方便其它服務發現並註冊 service-url: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ ##服務名稱 spring: application: name: eureka-server
啟動類如下:(idea一般都會自動生成一個啟動類如果沒有就新建一個)
package com.itxwl.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);
}
}
pom.xml核心依賴
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.18.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.itxwl</groupId>
<artifactId>eureka</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Edgware.SR5</spring-cloud.version>
</properties>
<!--eureka核心依賴-->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<!--新增測試依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
啟動類~~啟動之後開啟瀏覽器
如下所示即為成功