微服務實戰(四) 配置中心的使用 Nacos

2021-10-02 10:54:11 字數 1994 閱讀 3651

在微服務架構中,每個微服務應用都有自己的應用外部配置,在以前大多是使用配置檔案或者資料庫的形式和應用一起部署,而在springcloud體系下,需要有乙個配置中心,專門管理各個微應用的配置資訊,並且配置發生更新後,所有微應用都能馬上讀取到最新的配置。解決了每個應用都要去手動維護配置的不便。

上一章節中,使用了nacos作為服務註冊發現中心,其實nacos還自帶了配置中心的功能,直接使用即可。

如下圖所示,下面演示新增乙個配置

data id: 官方解釋如下, 我這裡直接填寫  nacos-provider.properties 

在 nacos spring cloud 中,dataid的完整格式如下:

$-$.$
spring.profile.active即為當前環境對應的 profile。注意:當spring.profile.active為空時,對應的連線符-也將不存在,dataid 的拼接格式變成$.$file-exetension為配置內容的資料格式,可以通過配置項spring.cloud.nacos.config.file-extension來配置。目前只支援propertiesyaml型別。

配置內容:格式根據選擇的格式型別而定,比如我這裡選擇了「properties」,則配置內容就按照平時專案內部的properties檔案配置的方式來就行了。

(直接在上一章節中的工程中進行改造:

首先需要在pom.xml中新增nacos的config依賴

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config

然後是在專案的配置檔案中新增nacos config的配置

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
下面寫乙個介面來測試是否能讀取到配置吧

package com.zjf.combat.api.nacos;

import org.springframework.beans.factory.annotation.value;

import org.springframework.cloud.context.config.annotation.refreshscope;

import org.springframework.web.bind.annotation.restcontroller;

@refreshscope

@restcontroller

public class nacosconfigapi

}

在上面**裡,使用了@refreshscope註解,這個註解主要用於配置的自動更新,即在nacos中該項配置發生變化時,在介面中就能感知到,獲取到最新的值。

啟動**,並呼叫剛寫的介面,可以發現讀取到了在nacos中的配置。

接下來嘗試更新此項配置,將version值改為1.1

重新整理介面

微服務實戰(四) 服務發現的可行方案以及實踐案例

這是關於使用微服務架構建立應用系列的第四篇文章。第一篇介紹了微服務架構的模式,討論了使用微服務架構的優缺點。第二和第三篇描述了微服務架構內部的通訊機制。這篇文章中,我們將會 服務發現相關問題。設想一下,我們正在寫 使用了提供rest api或者thrift api的服務,為了完成一次服務請求,需要知...

微服務實戰系列(九) 註冊中心與閘道器高可用架構設計

簡要說明 1 所有應用或者服務要想對外提供服務 包括閘道器 必須首先到註冊中心進行註冊。2 所有訪問通過服務閘道器進行訪問,然後由服務閘道器路由到對應服務中心進行互動訪問。2.1 springcloud eureka高可用方案 由上圖可以看出,註冊中心與路由很容易成為單點故障,軟體老王以前使用spr...

微服務實戰中如何理解服務熔斷和降級的區別

熔斷 舉個例子解釋,生活中每家每戶都在用電,小明家的電線因為故障導致了小明家停電了。而小李 小張家的電是正常使用的。電力公司沒有因為小明家有故障線路而停掉其他人家的電,同時小明家沒有使用有故障的電路的電。這時即為熔斷。熔斷的目的是當a服務模組中的某塊程式出現故障後為了不影響其他客戶端的請求而做出的及...