真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloud入門教程-搭建配置中心服務(wù)-創(chuàng)新互聯(lián)

簡介

Spring Cloud 提供了一個(gè)部署微服務(wù)的平臺,包括了微服務(wù)中常見的組件:配置中心服務(wù), API網(wǎng)關(guān),斷路器,服務(wù)注冊與發(fā)現(xiàn),分布式追溯,OAuth3,消費(fèi)者驅(qū)動合約等。我們不必先知道每個(gè)組件有什么作用,隨著教程的深入,我們會逐漸接觸到它們。一個(gè)分布式服務(wù)大體結(jié)構(gòu)見下圖(圖片來自于:spring.io):

站在用戶的角度思考問題,與客戶深入溝通,找到明溪網(wǎng)站設(shè)計(jì)與明溪網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋明溪地區(qū)。

Spring Cloud 入門教程 - 搭建配置中心服務(wù)

使用Spring Cloud搭建分布式的系統(tǒng)十分簡單,我們只需要幾行簡單的配置就能啟動一系列的組件,然后可以在代碼中控制、使用和管理這些組件。Spring Cloud使用Spring Boot作為基礎(chǔ)框架,可以參考我的上一篇博客介紹如何創(chuàng)建一個(gè)Spring Boot項(xiàng)目, Spring Boot 2.0.1 入門教程。本教程將教大家如何配置服務(wù)中心服務(wù),并通過web客戶端讀取配置。

基礎(chǔ)環(huán)境

  • JDK 1.8
  • Maven 3.3.9
  • IntelliJ 2018.1
  • Git

項(xiàng)目源碼

Gitee碼云

創(chuàng)建 Web Client

首先用IntelliJ創(chuàng)建一個(gè)Maven項(xiàng)目,pom.xml文件內(nèi)容如下:



    4.0.0

    cn.zxuqian
    web
    1.0-SNAPSHOT

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.1.RELEASE
    

    
        
            org.springframework.cloud
            spring-cloud-starter-config
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
            org.springframework.boot
            spring-boot-starter-web
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Finchley.M9
                pom
                import
            
        
    

    
        1.8
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

    
        
            spring-milestones
            Spring Milestones
            https://repo.spring.io/libs-milestone
            
                false
            
        
    

  • dependencyManagement 可以為所有的依賴指定統(tǒng)一的版本號,這里的Spring-cloud依賴版本均為Finchley.M9,然后使用repository指定此版本的倉庫。
  • spring-cloud-starter-config提供了訪問配置中心服務(wù)的API接口。

添加控制器

新建一個(gè)控制器類 cn.zxuqian.controllers.HelloController, 并添加如下代碼:

package cn.zxuqian.controllers;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RefreshScope
@RestController
public class HelloController {

    @Value("${message: 本地消息}")
    private String message;

    @RequestMapping("/message")
    public String message() {

        return this.message;
    }

}

一個(gè)簡單的控制器,匹配/message路徑,并返回message變量的值。這里先不用管 @RefreshScope 這個(gè)注解,等下會用到時(shí)再講。@Value會取來自配置中心服務(wù)的配置項(xiàng),或本地環(huán)境變量等等,此處取了配置中心的message的值,并給了它一個(gè)默認(rèn)值"本地消息",即如果遠(yuǎn)程配置中心不可用時(shí),此變量將會用默認(rèn)值初始化。

添加配置文件

bootstrap.xml

我們需要在web客戶端項(xiàng)目完全啟動之前去加載配置中心的配置項(xiàng),所以需要在src/main/resources下創(chuàng)建bootstrap.yml文件,然后指定此客戶端的名字和遠(yuǎn)程配置中心的uri:

spring:
  application:
    name: web-client
  cloud:
    config:
      uri: http://localhost:8888

yml相比properties文件更加簡潔,不用寫很多重復(fù)的前綴,上邊的內(nèi)容可以轉(zhuǎn)換為對應(yīng)的properties:

spring.application.name=web-client
spring.cloud.config.uri=http://localhost:8888
  • spring.application.name指定了此項(xiàng)目的名字,用來取配置中心相同文件名的配置文件,即配置中心應(yīng)有一文件名為web-client.yml的配置文件。
  • spring.cloud.config.uri指定了遠(yuǎn)程配置中心服務(wù)的uri地址,默認(rèn)為http://localhost:8888

創(chuàng)建配置中心項(xiàng)目

新建一個(gè)Maven項(xiàng)目,使用如下pom配置:



    4.0.0

    cn.zxuqian
    config-server
    1.0-SNAPSHOT

    jar

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.1.RELEASE
         
    

    
        UTF-8
        1.8
    

    
        
            org.springframework.cloud
            spring-cloud-config-server
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Finchley.M9
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

    
        
            spring-milestones
            Spring Milestones
            https://repo.spring.io/libs-milestone
            
                false
            
        
    

spring-cloud-config-server即為配置中心服務(wù)的核心依賴。

配置Application

新建一個(gè)Java類cn.zxuqian.Application,添加如下代碼:

package cn.zxuqian;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@EnableConfigServer
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  • 使用@EnableConfigServer這一條注解即可把該Maven項(xiàng)目作為配置中心服務(wù)啟動。

新建Git倉庫

配置中心的文件都是基于版本控制的,所以需要在本地新建一個(gè)git倉庫來保存配置文件。或者也可用公共遠(yuǎn)程git倉庫,github, 碼云等。在任意位置(如項(xiàng)目的上級目錄)創(chuàng)建一空白文件夾,這里叫做config,可以使用任何名字。然后進(jìn)入此文件夾下,運(yùn)行

$ git init

來初始化git倉庫,然后新建一個(gè)文件,名為web-client.yml,并添加如下內(nèi)容:

message: 此條消息來自于cofig server

注意此文件名需要和之前在web項(xiàng)目中配置的spring.application.name保持一致。這個(gè)文件的內(nèi)容就是web客戶端要獲取的message的值。創(chuàng)建完成之后,運(yùn)行如下git命令提交到本地倉庫:

$ git add web-client.yml
$ git commit -m "added web-client.yml"

配置git倉庫位置

我們需要為配置中心指定上述創(chuàng)建的git倉庫地址。在src/main/resources下創(chuàng)建applicaiton.yml文件,提供如下內(nèi)容:

server:
  port: 8888
spring:
  cloud:
    config:
      server:
        git:
          uri: ${HOME}/development/codes/backend/gitee/config

此文件指定了配置中心服務(wù)的端口號,和保存配置文件的git倉庫目錄,如果是遠(yuǎn)程倉庫,可以直接指定url地址。到此,配置中心服務(wù)創(chuàng)建完成。

測試

首先啟動配置中心服務(wù),使用spring-boot maven插件:spring-boot:run。啟動成功后再啟動web客戶端,訪問http://localhost:8080/message,如果看到此條消息來自于cofig server即配置成功。然后關(guān)閉配置中心服務(wù),再重啟web客戶端,訪問http://localhost:8080/message,我們就會看到本地消息。

動態(tài)更新配置

那么每次配置更新后都要重啟是不是很麻煩?Spring boot提供了spring-boot-starter-actuator組件,用來進(jìn)行生產(chǎn)環(huán)境的維護(hù),如檢查健康信息等。還記得上面HelloController@RefreshScope注解嗎?使用它我們可以動態(tài)的加載配置中心修改后的配置。然后我們還需要在配置中心的web-client.yml添加如下內(nèi)容用以暴露acurator的/refresh終端api。

message: 此條消息來自于cofig server

management:
  endpoints:
    web:
      exposure:
        include: "*"

更新完成后提交的git倉庫,然后重啟配置中心服務(wù)和web客戶端。修改message為

message: 更新:此條消息來自于cofig server

然后發(fā)送一個(gè)空的post請求到/refresh

$ curl http://localhost:8080/actuator/refresh -d {} -H "Content-Type: application/json"

之后刷新頁面,即可看到更新后的消息。

總結(jié)

現(xiàn)在我們搭建好了一個(gè)配置中心服務(wù),它是根據(jù)每個(gè)組件的spring.application.name來決定讀取哪個(gè)配置文件,然后我們用了acurator的/refreshapi在運(yùn)行時(shí)刷新配置項(xiàng)。另外配置項(xiàng)都是基于版本控制的,可以方便的進(jìn)行還原和更新。通過這個(gè)教程可以看到Spring Cloud的各組件的配置相當(dāng)簡單,基本就只用一條注解就可以創(chuàng)建一個(gè)完整的服務(wù)組件。

歡迎訪問我的博客原文:Spring Cloud 入門教程 - 搭建配置中心服務(wù)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


文章題目:SpringCloud入門教程-搭建配置中心服務(wù)-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://weahome.cn/article/dppocj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部