SpringCloud分散式微服務b2b2c電子商務(二)Eureka(服務註冊和服務發現基礎篇)

gung123發表於2019-12-23

一:Eureka簡介


Eureka是Spring Cloud Netflix的一個子模組,也是核心模組之一。用於雲端服務發現,一個基於REST的服務,用於定位

服務,以實現雲端中間層服務發現和故障轉移。瞭解springcloud架構可以加求求:三五三六二四七二五九,服務註冊與發現

對於微服務系統來說非常重要。有了服務發現與註冊,你就不需要整天改服務呼叫的配置檔案了,你只需要使用服務的標識

符,就可以訪問到服務。他的功能類似於dubbo的註冊中心(register)。

服務發現:服務發現是微服務基礎架構的關鍵原則之一。試圖著手配置每個客戶端或某種格式的約定可以說是非常困難的和

非常脆弱的。Eureka是Netflix服務發現的一種服務和客戶端。這種服務是可以被高可用性配置的和部署,並且在註冊的服務當

中,每個服務的狀態可以互相複製給彼此。


服務註冊:當一個客戶端註冊到Eureka,它提供關於自己的後設資料(諸如主機和埠,健康指標URL,首頁等)Eureka透過一個

服務從各個例項接收心跳資訊。如果心跳接收失敗超過配置的時間,例項將會正常從註冊裡面移除


下圖是基本的服務註冊和發現


二:Eureka服務發現和註冊(建立註冊中心)
1:建立一個基礎的Spring Boot工程,並在pom.xml中引入需要的依賴內容

<?xml version="1.0" encoding="UTF-8"?>  
    <project xmlns="
        xsi:schemaLocation="
        <modelVersion>4.0.0</modelVersion>  
    
        <groupId>com.demo.springcloud</groupId>  
        <artifactId>eureka_register_service</artifactId>  
        <version>1.0.0</version>  
        <packaging>jar</packaging>  
    
        <name>eureka_register_service</name>  
        <description>Spring Cloud project</description>  
    
        <parent>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-parent</artifactId>  
            <version>1.4.3.RELEASE</version>  
            <relativePath />  
        </parent>  
    
        <properties>  
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
            <java.version>1.8</java.version>  
        </properties>  
    
        <dependencies>  
            <dependency>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-starter-test</artifactId>  
                <scope>test</scope>  
            </dependency>  
    
            <dependency>  
                <groupId>org.springframework.cloud</groupId>  
                <artifactId>spring-cloud-starter-eureka-server</artifactId>  
            </dependency>  
            
            <dependency>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-starter-security</artifactId>  
            </dependency>  
        </dependencies>  
    
        <dependencyManagement>  
            <dependencies>  
                <dependency>  
                    <groupId>org.springframework.cloud</groupId>  
                    <artifactId>spring-cloud-dependencies</artifactId>  
                    <version>Brixton.RELEASE</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>  
    
    </project>

2:建立一個啟動類Application

package com.demo.springcloud;  
    
 import org.springframework.boot.SpringApplication;  
 import org.springframework.boot.autoconfigure.SpringBootApplication;  
 import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;  
    
 @EnableEurekaServer  
 @SpringBootApplication  
 public class Application {  
   public static void main(String[] args) {  
       SpringApplication.run(Application.class, args);  
   }  
    
 }

透過@EnableEurekaServer註解啟動一個服務註冊中心提供給其他應用進行對話。


3:建立一個配置檔案 application.properties,注意不要出現空格,否啟動報錯

server.port=8000
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone={server.port}/eureka/


4:執行bluid.sh進行構建,然後執行main方法。本人由於在eclipse下沒有進行手動編譯,啟動的時候一直讀取不到

application.properties。

5:檢視註冊中心

可以看到如下圖

在這裡插入圖片描述

是不是很簡單啊,那麼人要問了,為什麼連登陸賬號和密碼都沒有,在外網不是直接能進入註冊中心, 這樣很不安全啊。好,那我們加入登陸賬號和密碼.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952307/viewspace-2669952/,如需轉載,請註明出處,否則將追究法律責任。

相關文章