F版本SpringCloud 4—Eureka註冊中心開發和客戶端開發

源碼地址: https://gitee.com/bingqilinpe...

前言

經過前三篇文章,用大白話介紹了微服務和SpringCloud以及服務治理相關的概念,從這篇開始SpringCloud代碼的開發。java

SpringCloud 項目環境搭建

SpringCloud全部的demo都會採用 多模塊開發 的方式,經過父項目約束整個項目全部Module的版本,若是你不知道什麼是 多模塊開發,請閱讀個人文章:SpringBoot 多模塊開發 https://mp.weixin.qq.com/s/CD...

建立父項目「約束版本」

父項目最大的做用就是約束版本,全部的步驟請嚴格按照教程進行,會有全面的截圖

1.在IDEA中建立一個maven項目(project)git

2.修改pom文件web

SpringCloud版本選擇:Finchley.SR2,SpringBoot版本選擇:2.0.3.RELEASE面試

pom文件以下:spring

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>


    <!--Finchley 版本的SpringCloud 依賴2.0.X的SpringBoot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>


    <groupId>com.lby</groupId>
    <artifactId>cloud-demo-20f</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--    父級項目 使用pom-->
    <packaging>pom</packaging>

    <properties>
        <java.version>1.8</java.version>
        <!--        定義SpringCloud的版本號-->
        <spring-cloud.version>Finchley.SR2</spring-cloud.version>
    </properties>

    <!--    約束整個項目的SpringCloud版本-->
    <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>

</project>

Eureka註冊中心開發「單機版」

1.基於Project建立一個新的Moduleapache

至於骨架,不選擇任何骨架,maven仍是Spring Initializr主要看我的習慣,我選擇maven。app

2.修改eureka-server-8801項目的pom文件maven

觀察pom文件能夠發現,eureka-server-8801項目已經自動繼承了父項目

註冊中心的完整pom配置:spring-boot

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--    經過maven方式建立的項目,能夠看到已經自動的繼承了父項目,因此咱們
    只須要配置依賴就能夠了
-->
    <parent>
        <artifactId>cloud-demo-20f</artifactId>
        <groupId>com.lby</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>eureka-server-8801</artifactId>

    <dependencies>
<!--        導入註冊中心的依賴-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

</project>

3.建立SpringBoot的啓動類,添加註解微服務

代碼以下:

package com.lby;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * @author luxiaoyang
 * @create 2020-03-29-16:16
 * @SpringBootApplication 聲明當前類爲SpringBoot的啓動類
 * @EnableEurekaServer 聲明當前項目爲註冊中心
 */
@SpringBootApplication
@EnableEurekaServer
public class EurekaServer8801 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer8801.class,args);
    }
}

4.建立配置文件,寫入註冊中心的配置

server:
  port: 8801

eureka:
  client:
    #    在默認設置下,該服務註冊中心也會將本身做爲客戶端來嘗試註冊它本身,因此咱們須要禁用它的客戶端註冊行爲
    #     由於當前服務就是註冊中心 不須要向任何人註冊
    #    eureka.client. register-with-eureka:因爲該應用爲註冊中心,因此設置爲false,表明不向註冊中心註冊本身
    registerWithEureka: false
    #    eureka. client . fetch-registry:因爲註冊中心的職責就是維護服務實例,它並不須要去檢索服務,因此也設置爲false。
    #      不主動發現別人
    fetchRegistry: false
    #    聲明註冊中心的地址
    serviceUrl:
      defaultZone: http://localhost:8801/eureka/

經過以上四步 就完成註冊中心的搭建

5.啓動項目,訪問http://localhost:8801能夠訪問註冊中心的管理頁面

No application available 目前沒有客戶端註冊到註冊中心

Eureka客戶端開發

不用關閉註冊中心,接下來建立一個客戶端,讓客戶端註冊到註冊中心上

建立客戶端的步驟和註冊中心相似

  1. 建立項目結構
  2. 修改pom
  3. 修改啓動類
  4. 修改配置文件

1.建立客戶端項目 eureka-client-8803

2.修改pom文件,導入依賴

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>cloud-demo-20f</artifactId>
        <groupId>com.lby</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>eureka-client-8803</artifactId>

    <dependencies>
        <!--        Eureka 客戶端的依賴-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <!--        web的依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--        測試的依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

3.建立啓動類

package com.lby;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

/**
 * @EnableDiscoveryClient 聲明當前項目爲一個 Eureka客戶端 能夠被發現的客戶端
 * @EnableEurekaClient 聲明當前項目爲一個 Eureka客戶端
 *
 * 區別:
 * @EnableEurekaClient 只能向 Eureka 註冊中心註冊
 * @EnableDiscoveryClient 除了向 Eureka 註冊中心註冊 能夠向其餘的註冊中心註冊 zookeeper consul
 */
@SpringBootApplication
@EnableEurekaClient
public class EurekaClient8803 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaClient8803.class,args);
    }
}

4.建立並修改配置文件

經過上面的四步,就完成一個Eureka 客戶端的搭建

5.啓動項目 觀察註冊中心的監控頁面 看一看有沒有服務註冊到註冊中心

確保註冊中心和客戶端都啓動了

打開註冊中心的網址http://localhost:8803 能夠看到

經過以上步驟就完成了最基本的註冊中心和客戶端的開發

總結

源碼地址: https://gitee.com/bingqilinpe...

經過SpringCloud作微服務開發,無論是註冊中心,仍是客戶端,仍是網關等,SpringCloud幾乎全部的組件都是四板斧:

  1. 導入依賴
  2. 啓動類上加註解
  3. 寫配置文件
  4. 直接使用

恭喜你完成了本章的學習,爲你鼓掌!若是本文對你有幫助,請幫忙點贊,評論,轉發,這對做者很重要,謝謝。

要掌握SpringCloud更多的用法,請持續關注本系列教程。

求關注,求點贊,求轉發

歡迎關注本人公衆號:鹿老師的Java筆記,將在長期更新Java技術圖文教程和視頻教程,Java學習經驗,Java面試經驗以及Java實戰開發經驗。
相關文章
相關標籤/搜索