spring cloud 學習(一)初學SpringCloud


初學SpringCloud

前言

在SpringBoot的坑還沒填完的情況下,我又迫不及待地開新坑了。主要是寒假即將結束了,到時又得忙於各種各樣的事情……留個坑給自己應該就會惦記着它,再慢慢地補上…………………………

附錄

個人博客地址 : https://zggdczfr.cn
個人參考項目 : https://github.com/FunriLy/springcloud-study/tree/master/%E6%A1%88%E4%BE%8B1

SpringCloud 介紹

Spring Cloud是一個基於Spring Boot實現的雲應用開發工具(就是說,接觸Spring Cloud之前需要了解一下Spring Boot)。歸結起來,Spring Cloud 是一個微服務工具包,為開發者提供了在分布式系統的配置管理、服務發現、斷路器、智能路由、微代理、控制總線等許多開發工具包。
按照官方的說法就是,Spring Cloud 為開發者提供了在分布式系統操作的工具。而且容易上手,可以進行快速開發。

微服務架構

微服務架構概念

“微服務架構”,就是將一個完整的應用從數據存儲開始拆分成多個不同的服務,每個服務都能獨立部署、獨立維護、獨立擴展。系統中的各個微服務可被獨立部署,各個微服務之間是松耦合的。每個微服務僅關注於完成一件任務並很好地完成該任務。服務與服務間通過諸如RESTful API的方式互相調用。

關於微服務架構的扯淡

“微服務架構”,其實這個概念好幾年前就已經出現了,而且國外也出現了較為成熟的產品:netflix、dubbo等。聽說目前 Spring 開發團隊的精力主要集中於 spring boot 和 spring cloud 相關框架的開發。一般情況下,作為一個學習 java 的屌絲,基本上跟上 spring 屌絲的步伐,也就跟上了主流技術。

微服務架構的選擇

附上大神 程序猿DD(翟永超) 的一篇博客,可以參考一下:微服務架構的基礎框架選擇:Spring Cloud還是Dubbo?

服務注冊與發現(Eureka)

Eureka Server

    • 創建一個 Spring Boot 項目。只要引入了Log4j2,便於日志記錄。pom.xml依賴文件如下:
  <!-- SpringBoot 框架 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--log4j2-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <!-- eureka-服務 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>

 版本參數:

  <!-- 還是比較喜歡穩定的 Brixton 版本 -->
    <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>
    <!--spring boot 的 maven 插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

 

  • 通過@EnableEurekaServer注解啟動一個服務注冊中心。直接在SpringBoot啟動類加上注解@EnableEurekaServer即可。

  • application.properties配置:

server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/

 

同時,簡要說明一下這些配置項:
eureka.client.registerWithEureka :表示是否將自己注冊到Eureka Server,默認為true。由於當前這個應用就是Eureka Server,故而設為false。
eureka.client.fetchRegistry :表示是否從Eureka Server獲取注冊信息,默認為true。因為這是一個單點的Eureka Server,不需要同步其他的Eureka Server節點的數據,故而設為false。
eureka.client.serviceUrl.defaultZone :設置與Eureka Server交互的地址,查詢服務和注冊服務都需要依賴這個地址。默認是http://localhost:8761/eureka ;多個地址可使用 , 分隔。

如圖所示:

這里寫圖片描述

Eureka Client

  • 創建一個 Spring Boot 項目。基本上與上一個工程無異,pom.xml需要修改了一個依賴。
     <!-- eureka-服務 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>

 

  • 通過@EnableDiscoveryClient注解啟動一個服務注冊中心。直接在SpringBoot啟動類加上注解@EnableDiscoveryClient即可。同時,Eureka Client 提供的服務與一般 Spring Boot 項目是一樣的。

  • application.properties配置:

# eureka client 配置
spring.application.name=service0
server.port=1111
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

 

如圖所示:
這里寫圖片描述

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM