1. 程式人生 > >SpringCloud註冊中心(一)

SpringCloud註冊中心(一)

簡介:

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

表示專案儲存的電腦路徑         Finish即可完成

 二:新建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>

啟動類~~啟動之後開啟瀏覽器

如下所示即為成功

 如果有哪些不對的希望大佬給與指教。感謝!!!!!