您当前的位置:首页 > 百宝箱

Nacos快速入门学习:从零搭建到配置管理实战指南

2024-11-05 14:18:43 作者:石家庄人才网

Nacos锛氶樋閲屼簯寰湇鍔℃灦鏋勭殑寰楀姏鍔╂墜

姒傝堪

闅忕潃寰湇鍔$殑鏅強锛屾湇鍔″彂鐜般€侀厤缃鐞嗕互鍙婂懡鍚嶆湇鍔℃垚涓轰簡鏋舵瀯涓殑鏍稿績鐜妭銆侼acos锛岀敱闃块噷浜戝€惧姏鎵撻€狅紝姝f槸涓€濂椾笓涓哄井鏈嶅姟鏋舵瀯璁捐鐨勩€佸垎甯冨紡鐨勩€佸熀浜庡鏁版嵁涓績鐨勩€侀珮鎬ц兘鐨勩€佹槗浜庢墿灞曠殑銆侀珮鍙敤鐨勬湇鍔″彂鐜般€侀厤缃鐞嗕互鍙婂懡鍚嶆湇鍔$郴缁熴€?/p>

涓€鎺acos绌剁珶

Nacos锛岀┒绔熸槸浣曟柟绁炲湥锛熷畠鏄竴濂楀叏闈㈢殑鏈嶅姟鍙戠幇銆侀厤缃鐞嗐€佸懡鍚嶆湇鍔$郴缁燂紝鍫О寰湇鍔℃灦鏋勭殑鐞嗘兂瑙e喅鏂规銆侼acos鑷村姏浜庢彁鍗囧井鏈嶅姟鏋舵瀯鐨勯珮鏁堟€с€佸姩鎬佹€у拰绋冲畾鎬с€傞€氳繃闆嗕腑鍖栫殑绠$悊鏈嶅姟鍙戠幇涓庨厤缃紝瀹冩湁鏁堥檷浣庝簡鏈嶅姟闂寸殑鑰﹀悎搴︼紝澧炲己浜嗙郴缁熺殑鐏垫椿鎬т笌鍙墿灞曟€с€?/p>

Nacos鏍稿績鍔熻兘涓€瑙?/p>

鏈嶅姟鍙戠幇涓庢敞鍐岋細Nacos瀹炵幇鍔ㄦ€佹湇鍔℃敞鍐屼笌鍙戠幇锛岃嚜鍔ㄥ皢鏈嶅姟璇︽儏娉ㄥ唽鑷砃acos锛屾敮鎸佹湇鍔$殑鍔ㄦ€佸姞鍏ヤ笌绂诲紑銆?/p>

閰嶇疆绠$悊锛氫綔涓洪泦涓寲鐨勯厤缃鐞嗗钩鍙帮紝Nacos鏀寔鐑洿鏂版満鍒讹紝搴旂敤閰嶇疆鏇存柊閮ㄧ讲鏃堕棿澶уぇ缂╃煭銆?/p>

鍛藉悕鏈嶅姟锛氭彁渚涚粺涓€鐨勫懡鍚嶇┖闂达紝绠€鍖栨湇鍔¢棿鐨勮矾鐢变笌瀹氫綅銆?/p>

鍋ュ悍妫€鏌ワ細閫氳繃鍛ㄦ湡鎬ф鏌ユ湇鍔$姸鎬侊紝纭繚绯荤粺绋冲畾鎬э紝蹇€熷畾浣嶄笌澶勭悊鏁呴殰銆?/p>

浜嬪姟璺熻釜锛氭敮鎸佸垎甯冨紡浜嬪姟绠$悊锛岀畝鍖栬法鏈嶅姟璋冪敤鐨勪簨鍔″鐞嗭紝澧炲己寰湇鍔″崗鍚岃兘鍔涖€?/p>

Nacos鍦ㄥ井鏈嶅姟涓殑瑙掕壊

鍦ㄥ井鏈嶅姟鏋舵瀯涓紝Nacos鎵紨鏈嶅姟鍙戠幇涓庨厤缃腑蹇冪殑瑙掕壊銆傚嚟鍊熼珮鏁堢殑鏈嶅姟鍙戠幇鏈哄埗涓庨厤缃鐞嗚兘鍔涳紝瀹冨姪鍔涙湇鍔¢棿楂樻晥閫氫俊涓庡崗浣滐紝鏄捐憲鎻愬崌寰湇鍔$郴缁熺殑鏁翠綋鍙敤鎬т笌鎬ц兘銆?/p>

Nacos鐜鍑嗗涓庡畨瑁呮寚鍗?/p>

鎯宠浣撻獙Nacos鐨勯瓍鍔涳紵棣栧厛寰椾簡瑙e叾鐜闇€姹傚苟鎴愬姛瀹夎銆?/p>

鐜闇€姹傝鏄庯細鍚姩Nacos鍓嶏紝璇风‘淇濇嫢鏈塋inux銆乵acOS鎴朩indows鎿嶄綔绯荤粺銆丣DK 8鍙婁互涓婄増鏈殑Java鐜锛屽苟鏍规嵁闇€姹傚悎鐞嗗垎閰嶅瓨鍌ㄧ┖闂达紝纭繚Nacos鏈嶅姟鍣ㄤ笌瀹㈡埛绔箣闂存湁鑹ソ鐨勭綉缁滆繛鎺ャ€?/p>

蹇€熷畨瑁匩acos鏈嶅姟鍣細浠嶯acos瀹樼綉鎴朑itHub涓嬭浇鏈€鏂板畨瑁呭寘锛岃В鍘嬭嚦鎸囧畾鐩綍骞堕厤缃紝閫氳繃鎵ц鐩稿叧鍛戒护鍚姩Nacos鏈嶅姟鍣ㄣ€?/p>

瀹夎瀹屾垚鍚庯紝濡備綍楠岃瘉Nacos杩愯鍙婅繘琛屽熀鏈厤缃紵閫氳繃娴忚鍣ㄨ闂甽ocalhost:8848/nacos锛屼娇鐢ㄩ粯璁よ处鎴峰瘑鐮佺櫥褰曟帶鍒跺彴锛岃繘琛屾湇鍔℃敞鍐屻€侀厤缃鐞嗗強鍛藉悕绌洪棿鐨勫垵姝ラ厤缃紝涓哄悗缁疄璺靛瀹氬熀纭€銆?/p>

鏈嶅姟娉ㄥ唽鍘熺悊娴呮瀽

闆嗘垚Nacos鏈嶅姟鍙戠幇鍦⊿pring Boot椤圭洰涓?/p>

瑕佸皢Nacos鏈嶅姟鍙戠幇闆嗘垚鍒癝pring Boot椤圭洰涓紝璇烽伒寰互涓嬫楠わ細

涓€銆佹坊鍔犱緷璧?/h3>

鍦ㄩ」鐩殑pom.xml鎴朾uild.gradle鏂囦欢涓紝娣诲姞Nacos Spring Cloud鐨勪緷璧栥€?/p>

瀵逛簬Maven鐢ㄦ埛锛?/p>

```xml

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

```

瀵逛簬Gradle鐢ㄦ埛锛?/p>

```gradle

implementation 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery'

```

浜屻€侀厤缃湇鍔″彂鐜颁腑蹇?/h3>

鍦╝pplication.properties鎴朼pplication.yml鏂囦欢涓紝鎸囧畾Nacos鏈嶅姟鍙戠幇涓績鐨勫湴鍧€銆備緥濡傦細

```properties

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

```

涓夈€佸姩鎬佹湇鍔″垪琛ㄧ殑鏌ョ湅涓庣鐞?/h3>

鎯宠鏌ヨ鏈嶅姟瀹炰緥骞惰繘琛岀鐞嗘搷浣滐紝鍙互閫氳繃Spring Cloud鎻愪緵鐨凞iscoveryClient鏉ュ疄鐜般€備緥濡傦細

```java

@Autowired

private DiscoveryClient discoveryClient;

public void queryServices() {

Map> services = discoveryClient.getServices();

services.forEach((serviceName, instances) -> {

System.out.println("Service Name: " + serviceName);

instances.forEach(instance -> {

System.out.println("Instance: " + instance);

});

});

}

```

鍥涖€佹繁鍏ユ帰绌讹細閰嶇疆涓績姒傚康涓庝紭鍔库€斺€斾互Nacos涓轰緥

閰嶇疆涓績姒傚康绠€杩?/p>

閰嶇疆涓績锛堝Nacos锛夋槸涓€涓厑璁稿紑鍙戣€呭湪搴旂敤杩愯鏃跺姩鎬佷慨鏀归厤缃殑绯荤粺銆傚畠浣垮緱搴旂敤鏇村姞鐏垫椿锛岃兘澶熷揩閫熷搷搴旈厤缃彉鏇达紝鑰屾棤闇€閲嶆柊閮ㄧ讲搴旂敤銆傞€氳繃閰嶇疆涓績锛屽紑鍙戣€呭彲浠ラ泦涓鐞嗘墍鏈夊井鏈嶅姟鐨勫簲鐢ㄩ厤缃紝瀹炵幇閰嶇疆鐨勭粺涓€绠$悊鍜屽姩鎬佸埛鏂般€?/p>

浼樺娍灞曠幇

1. 鍔ㄦ€侀厤缃埛鏂帮細閰嶇疆鏇存敼鍚庯紝鏃犻渶閲嶅惎搴旂敤鍗冲彲鐢熸晥銆?/p>

2. 闆嗕腑绠$悊锛氭墍鏈夊井鏈嶅姟鐨勯厤缃兘闆嗕腑鍦ㄤ竴涓湴鏂圭鐞嗭紝鍑忓皯浜嗙鐞嗘垚鏈拰澶嶆潅鎬с€?/p>

3. 瀹炴椂鍝嶅簲锛氳兘澶熷揩閫熷搷搴旈厤缃彉鏇达紝鎻愰珮绯荤粺鐨勭伒娲绘€у拰鍝嶅簲閫熷害銆?/p>

4. 鐗堟湰鎺у埗锛氬彲浠ヨ褰曢厤缃殑鐗堟湰鍘嗗彶锛屾柟渚垮洖婊氬拰瀹¤銆?/p>

---

閰嶇疆鍒涘缓鍙婂井鏈嶅姟瀹炰緥搴旂敤涔嬫梾

鍦∟acos鐨勫濡欎笘鐣岄噷锛屽浣曞垱寤洪厤缃苟灏嗗叾鐏垫椿搴旂敤鍒板井鏈嶅姟瀹炰緥涓憿锛熻鎴戜滑涓€鎺㈢┒绔燂紒

閰嶇疆鏂囦欢绀轰緥锛?/p>

鎯宠薄涓€涓嬩綘鐨勯厤缃枃浠朵腑鍖呭惈浠ヤ笅鍐呭锛?/p>

`app: name: my-service version: v1.0 environment: dev`

鏈嶅姟绔厤缃簲鐢ㄦ帰绱細

涓轰簡灏嗚繖浜涢厤缃俊鎭敞鍏ュ埌鏈嶅姟涓紝鎴戜滑鍙互浣跨敤Spring Boot鐨凘ConfigurationProperties娉ㄨВ銆傝繖鏄竴涓畝鍗曠殑绀轰緥锛屽睍绀哄浣曞皢涓婅堪閰嶇疆搴旂敤浜庝竴涓悕涓篈ppConfigProperties鐨勭粍浠朵腑锛?/p>

```java

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.stereotype.Component;

@ConfigurationProperties(prefix = "app")

@Component

public class AppConfigProperties {

private String name; // 搴旂敤鍚嶇О 浼间箮鑷甫鐙壒榄呭姏涓庣壒鑹插摝锛?馃槉

private String version; // 搴旂敤鐗堟湰淇℃伅锛屽憡璇夋垜浠増鏈洿鏂拌繘搴﹀拰鏇存柊鍐呭锛?馃殌

private String environment; // 杩愯鐜锛屾棤璁烘槸寮€鍙戣繕鏄敓浜х幆澧冮兘鑳界伒娲诲簲瀵癸紒馃寪 鉁?绱ф帴鐫€鍦ㄥ井鏈嶅姟瀹炰緥涓紝鎴戜滑鍙互杞绘澗鑾峰彇骞朵娇鐢ㄨ繖浜涢厤缃俊鎭€?馃挕 馃敡 馃敡 鐑洿鏂伴厤缃疄璺典笌楠岃瘉锛氫负浜嗙‘淇濆井鏈嶅姟鑳藉閫傚簲鍔ㄦ€佸彉鍖栫殑鐜闇€姹傦紝鎴戜滑闇€瑕佸紩鍏ュ姩鎬侀厤缃姞杞芥満鍒躲€傜幇鍦紝浣犲彲浠ヨ交鏉惧湴瀹炵幇閰嶇疆鐨勭儹鏇存柊锛佽繖涓壒鎬ц兘澶熻浣犺交鏉捐皟鏁村簲鐢ㄩ厤缃€屾棤闇€閲嶅惎鏈嶅姟銆傝繖閲屾湁涓€涓畝鍗曠殑Controller绀轰緥锛屽睍绀哄浣曢€氳繃璁块棶鐗瑰畾鐨刄RL鏉ヨ幏鍙栧綋鍓嶅簲鐢ㄧ殑閰嶇疆淇℃伅銆傞€氳繃绠€鍗曠殑GET璇锋眰鍗冲彲杞绘澗鏌ョ湅閰嶇疆鐘舵€併€傚綋閰嶇疆鍙戠敓鍙樺寲鏃讹紝浣犲彲浠ョ珛鍗崇湅鍒版柊鐨勯厤缃俊鎭鍔犺浇骞跺弽鏄犲湪搴旂敤涓€?馃寪 馃殌 鍋ュ悍妫€鏌ヤ笌鏈嶅姟鐩戞帶鐨勯噸瑕佹€э細褰撴秹鍙婂埌寰湇鍔℃灦鏋勬椂锛岀‘淇濇湇鍔℃甯歌繍琛屽彉寰楀挨涓洪噸瑕併€備负姝わ紝Nacos寮曞叆浜嗗己澶х殑鍋ュ悍妫€鏌ユ満鍒躲€傚畠涓嶄粎鐩戞祴鏈嶅姟鐨勫彲杈炬€э紝杩樺寘鎷搷搴旀椂闂村拰涓€绯诲垪鍏朵粬鍏抽敭鎸囨爣銆傚€熷姪杩欎簺鎸囨爣鍜屾暟鎹紝鎴戜滑鍙互杩呴€熷彂鐜伴棶棰樺苟鍋氬嚭璋冩暣銆傝繖浜涗俊鎭繕涓哄洟闃熸彁渚涗簡瀹濊吹鐨勭洃鎺ф暟鎹紝甯姪杩涜鎬ц兘浼樺寲鍜屾晠闅滄帓鏌ャ€傞€氳繃杩欎簺鍋ュ悍妫€鏌ュ姛鑳斤紝Nacos甯姪鎴戜滑纭繚寰湇鍔″湪鍔ㄦ€佺幆澧冧腑濮嬬粓淇濇寔鍋ュ.鍜岀ǔ瀹氥€傝鎴戜滑鍏卞悓鎺㈢储杩欎釜寮哄ぇ鐨勫伐鍏凤紝骞跺厖鍒嗗埄鐢ㄥ畠涓烘垜浠殑寰湇鍔℃灦鏋勪繚椹炬姢鑸紒鐩戞帶鏈嶅姟鐘舵€佷笌鎸囨爣锛氫娇鐢ㄩ泦鎴愮洃鎺у伐鍏峰 Prometheus 鍜?Grafana锛屾垜浠兘澶熶互鍙鍖栨柟寮忓疄鏃舵帉鎻℃湇鍔$殑鐘舵€佸拰鍚勭鎬ц兘鎸囨爣銆備笅闈㈡垜浠皢娣卞叆浜嗚В濡備綍浣跨敤杩欎簺宸ュ叿杩涜鏈嶅姟鐩戞帶銆傚浜庢湇鍔″仴搴风姸鎬侊紝鎴戜滑鏈変竴涓熀浜?Spring Boot 鐨勭粍浠?`ServiceHealthIndicator`銆傚畠鍒╃敤 MeterRegistry 鏉ュ疄鐜版湇鍔$殑鍋ュ悍鐘舵€佺洃娴嬶紝骞跺湪闇€瑕佹椂鏆撮湶鐩稿簲鐨勬湇鍔℃寚鏍囨暟鎹€傞€氳繃杩欎釜缁勪欢锛屾垜浠彲浠ヨ交鏉惧湴浜嗚В鏈嶅姟鐨勮繍琛岀姸鎬佸苟瀵瑰叾杩涜绠$悊銆傚畠杩樻彁渚涗簡鏆撮湶鎸囨爣鐨勬柟娉曪紝浠ヤ究鎴戜滑鏇村ソ鍦颁簡瑙f湇鍔$殑鎬ц兘琛ㄧ幇銆?/p>

杩涢樁鎺㈢储涓庢渶浣冲疄璺碉細

Nacos 闆嗙兢閮ㄧ讲鏂规锛氫负浜嗘洿濂藉湴鎻愬崌绯荤粺鐨勬€ц兘鍜屽彲鐢ㄦ€э紝鎴戜滑甯稿父浼氶€夋嫨闆嗙兢閮ㄧ讲妯″紡銆傚叾涓秹鍙婂埌鐨勫叧閿蹇靛寘鎷富浠庢ā寮忓拰涓讳富妯″紡銆傚湪閮ㄧ讲杩囩▼涓紝鎴戜滑闇€瑕佸叧娉ㄦ暟鎹悓姝ョ殑鍑嗙‘鎬у拰楂樻晥鎬э紝纭繚鍦ㄦ晠闅滆浆绉绘椂鑳藉淇濇寔绯荤粺鐨勭ǔ瀹氳繍琛屻€傝礋杞藉潎琛′篃鏄垜浠渶瑕佽€冭檻鐨勯噸瑕佸洜绱犱箣涓€锛屼互纭繚绯荤粺鐨勬€ц兘寰楀埌鍏呭垎鍙戞尌銆侼acos 杩樻彁渚涗簡寮哄ぇ鐨勫畨鍏ㄧ瓥鐣ュ拰鏉冮檺绠$悊鍔熻兘锛屽彲浠ョ‘淇濇垜浠殑鏈嶅姟瀹夊叏鍦板澶栨彁渚涙湇鍔°€侼acos 鍙互涓庡叾浠栧井鏈嶅姟妗嗘灦锛堝 Spring Cloud锛夋棤缂濋泦鎴愶紝涓烘垜浠彁渚涙洿寮哄ぇ鐨勬湇鍔″彂鐜板拰閰嶇疆绠$悊鑳藉姏銆傝繖浣垮緱鎴戜滑鍦ㄦ瀯寤哄井鏈嶅姟鏋舵瀯鏃舵洿鍔犱究鎹峰拰楂樻晥銆?/p>

鎬荤粨涓庡睍鏈涳細

閫氳繃鏈寚鍗楃殑瀛︿範鍜屽疄璺碉紝鎮ㄥ凡缁忔帉鎻′簡浠庨浂寮€濮嬫惌寤?Nacos 骞跺疄鐜板叾鍦ㄥ井鏈嶅姟鏋舵瀯涓殑楂樼骇閰嶇疆绠$悊鍜屾湇鍔″彂鐜板姛鑳界殑鏂规硶銆傞殢鐫€鎶€鏈殑涓嶆柇杩涙鍜屽井鏈嶅姟鏋舵瀯鐨勪笉鏂彂灞曪紝Nacos 鐨勫姛鑳戒篃鍦ㄦ寔缁赴瀵屽拰浼樺寲銆傛湭鏉ワ紝鎴戜滑鍙互棰勮 Nacos 灏嗗紩鍏ユ洿澶氳嚜鍔ㄥ寲杩愮淮鍜屾櫤鑳藉喅绛栧姛鑳斤紝甯姪鎴戜滑鏇村ソ鍦扮鐞嗗拰浼樺寲寰湇鍔℃灦鏋勭殑鎬ц兘鍜岀ǔ瀹氭€с€傞€氳繃鎸佺画鐨勫涔犲拰瀹炶返锛屾偍灏嗚兘澶熷厖鍒嗗埄鐢?Nacos 鏋勫缓楂樻晥绋冲畾鐨勫井鏈嶅姟鏋舵瀯銆備负姝わ紝鎴戜滑涔熸帹鑽愭偍鎸佺画鍏虫敞瀹樻柟鏂囨。銆佸湪绾挎暀绋嬪拰绀惧尯璁哄潧绛夊涔犺祫婧愶紝浠ヨ幏鍙栨渶鏂扮殑鎶€鏈祫璁拰瀹炶返缁忛獙鍒嗕韩銆?/p>

版权声明:《Nacos快速入门学习:从零搭建到配置管理实战指南》来自【石家庄人才网】收集整理于网络,不代表本站立场,所有图片文章版权属于原作者,如有侵略,联系删除。
https://www.ymil.cn/baibaoxiang/27356.html