Nacos簡介

1.Nacos簡介
1.1.為什么叫Nacos?
前四個字母分別為Naming和Configuration的前兩個字母,最后的s為service。

1.2.Nacos是什么?
nacos是第二代微服務SpringCloudAlibaba開源的一款注冊中心和分布式配置中心組件,其功能上為第一代微服務SpringCloud中Eureka和Config的結合體。簡而言之,Nacos可以實現分布式服務注冊與發現和分布式配置中心功能。

Nacos官方文檔: https://nacos.io/zh-cn/docs/what-is-nacos.html

1.3.Nacos能干嘛?
替代Eureka做服務注冊中心;
替代Config做服務配置中心;

Nacos 致力于幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。

Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以“服務”為中心的現代應用架構 (例如微服務范式、云原生范式) 的服務基礎設施。

1.4.去哪里下載Nacos以及文檔地址?
Nacos各個版本下載地址
https://github.com/alibaba/nacos/tags

Nacos GitHub地址
https://github.com/alibaba/Nacos

Nacos官網
https://nacos.io/zh-cn/

Nacos文檔地址
https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

2.Nacos的關鍵特性
2.1.服務發現和服務健康監測
Nacos 支持基于 DNS 和基于 RPC 的服務發現。服務提供者使用 原生SDK、OpenAPI、或一個獨立的Agent TODO注冊 Service 后,服務消費者可以使用DNS TODO 或HTTP&API查找和發現服務。

Nacos 提供對服務的實時的健康檢查,阻止向不健康的主機或服務實例發送請求。Nacos 支持傳輸層 (PING 或 TCP)和應用層 (如 HTTP、MySQL、用戶自定義)的健康檢查。 對于復雜的云環境和網絡拓撲環境中(如 VPC、邊緣網絡等)服務的健康檢查,Nacos 提供了 agent 上報模式和服務端主動檢測2種健康檢查模式。Nacos 還提供了統一的健康檢查儀表盤,幫助您根據健康狀態管理服務的可用性及流量。
動態配置服務

動態配置服務可以讓您以中心化、外部化和動態化的方式管理所有環境的應用配置和服務配置。

動態配置消除了配置變更時重新部署應用和服務的需要,讓配置管理變得更加高效和敏捷。

配置中心化管理讓實現無狀態服務變得更簡單,讓服務按需彈性擴展變得更容易。

Nacos 提供了一個簡潔易用的UI (控制臺樣例 Demo) 幫助您管理所有的服務和應用的配置。Nacos 還提供包括配置版本跟蹤、金絲雀發布、一鍵回滾配置以及客戶端配置更新狀態跟蹤在內的一系列開箱即用的配置管理特性,幫助您更安全地在生產環境中管理配置變更和降低配置變更帶來的風險。

2.2.動態配置服務
動態配置服務可以讓您以中心化、外部化和動態化的方式管理所有環境的應用配置和服務配置。

動態配置消除了配置變更時重新部署應用和服務的需要,讓配置管理變得更加高效和敏捷。

配置中心化管理讓實現無狀態服務變得更簡單,讓服務按需彈性擴展變得更容易。

Nacos 提供了一個簡潔易用的UI (控制臺樣例 Demo) 幫助您管理所有的服務和應用的配置。Nacos 還提供包括配置版本跟蹤、金絲雀發布、一鍵回滾配置以及客戶端配置更新狀態跟蹤在內的一系列開箱即用的配置管理特性,幫助您更安全地在生產環境中管理配置變更和降低配置變更帶來的風險。

2.3.動態 DNS 服務
動態 DNS 服務支持權重路由,讓您更容易地實現中間層負載均衡、更靈活的路由策略、流量控制以及數據中心內網的簡單DNS解析服務。動態DNS服務還能讓您更容易地實現以 DNS 協議為基礎的服務發現,以幫助您消除耦合到廠商私有服務發現 API 上的風險。

Nacos 提供了一些簡單的 DNS APIs 幫助您管理服務的關聯域名和可用的 IP:PORT 列表

2.4.服務及其元數據管理
Nacos 能讓您從微服務平臺建設的視角管理數據中心的所有服務及元數據,包括管理服務的描述、生命周期、服務的靜態依賴分析、服務的健康狀態、服務的流量管理、路由及安全策略、服務的 SLA 以及最首要的 metrics 統計數據。

Nacos 全景圖如下圖:

如 Nacos 全景圖所示,Nacos 無縫支持一些主流的開源生態,例如

Spring Cloud
apache Dubbo and Dubbo Mesh
Kubernetes and CNCF。
使用 Nacos 簡化服務發現、配置管理、服務治理及管理的解決方案,讓微服務的發現、管理、共享、組合更加容易。

3.環境要求
3.1.預備環境準備
Nacos 依賴 Java 環境來運行。如果您是從代碼開始構建并運行Nacos,還需要為此配置 Maven環境,請確保是在以下版本環境中安裝使用:

64 bit OS,支持 Linux/Unix/Mac/Windows,推薦選用 Linux/Unix/Mac。
64 bit JDK 1.8+。
Maven 3.2.x+。

3.2.依賴
版本說明參考: https://github.com/alibaba/spring-cloud-alibaba/wiki/版本說明

spring-cloud-dependencies.version: Spring Cloud Hoxton.SR3
spring-cloud.version: 2.2.2.RELEASE
spring-cloud-alibaba-version: 2.2.0.RELEASE
spring-boot-version: 2.2.5.RELEASE
nacos-version: 1.1.4

4.版本依賴關系

5.nacos安裝
nacos的安裝和部署、啟動都可參照nacos官方文檔,這里我就以Windows環境為例,Windwos平臺下如果要使用nacos,需要先去下載nacos-server安裝包,下載完成后解壓,雙擊bin目錄下面的startup.cmd啟動即可。

nacos-server官網下載: https://github.com/alibaba/nacos/releases/

5.1.Windwos
nacos-server 1.2.1 Windows環境

注意: windwos環境下啟動nacos雙擊start.up即可。且windows環境默認是以單機模式啟動。

Windows環境啟動

cmd startup.cmd 或者雙擊 startup.cmd 文件
1.
5.2.Linux
nacos-server 1.2.1 Linux 環境

注意: linux環境默認是以集群機模式啟動的,所以如果使用的是linux,需要執行以下命令,表示單機模式啟動。

Linux/Unix/Mac環境啟動

sh startup.sh -m standalone
1.
啟動成功后如圖:

初始訪問地址: http://127.0.0.1:8848/nacos/index.html賬號密碼: nacos/nacos

6.環境搭建
以訂單(Order)調用商品(Product)為例,分別創建父工程springcloud-alibaba-nacos、子工程springcloud-alibaba-provider、springcloud-alibaba-consumer

6.1.搭建springcloud-alibaba-nacos
pom.xml

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

<groupId>com.bruce.springcloud-alibaba-nacos</groupId>
<artifactId>springcloud-alibaba-nacos</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules><module>springcloud-alibaba-provider</module><module>springcloud-alibaba-consumer</module>
</modules><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.2.5.RELEASE</version><type>pom</type><scope>import</scope></dependency><!--Spring Cloud --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR3</version><type>pom</type><scope>import</scope></dependency><!-- Spring Cloud Alibaba--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.1.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

6.2.搭建springcloud-alibaba-provider服務提供者
pom.xml

<?xml version="1.0" encoding="UTF-8"?>



springcloud-alibaba-nacos
com.bruce.springcloud-alibaba-nacos
1.0-SNAPSHOT

4.0.0

<artifactId>springcloud-alibaba-provider</artifactId><dependencies><!-- web組件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><!--排除tomcat依賴 --><exclusion><artifactId>spring-boot-starter-tomcat</artifactId><groupId>org.springframework.boot</groupId></exclusion></exclusions></dependency><!--undertow容器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId></dependency><!--nacos服務注冊與發現 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- lombok插件 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>
</dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

application.yml

server:port: 8715
spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848enabled: trueapplication:name: nacos-product

啟動類AppProvider

package com.bruce;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @BelongsProject: springcloud-alibaba-nacos* @BelongsPackage: com.bruce* @CreateTime: 2021-02-18 13:08* @Description: TODO*/@SpringBootApplication
public class AppProvider {public static void main(String[] args) {SpringApplication.run(AppProvider.class);}
}

啟動并測試

啟動并測試

查看注冊列表

6.3.搭建springcloud-alibaba-consumer服務消費者
pom.xml

<?xml version="1.0" encoding="UTF-8"?>



springcloud-alibaba-nacos
com.bruce.springcloud-alibaba-nacos
1.0-SNAPSHOT

4.0.0

<artifactId>springcloud-alibaba-consumer</artifactId><dependencies><!--nacos服務注冊與發現 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- web組件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><!--排除tomcat依賴 --><exclusion><artifactId>spring-boot-starter-tomcat</artifactId><groupId>org.springframework.boot</groupId></exclusion></exclusions></dependency><!--undertow容器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId></dependency><!-- lombok插件 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>
</dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

application.yml
server:
port: 8710
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
enabled: true
application:
name: nacos-order

啟動類AppConsumer
package com.bruce;

/**

  • @BelongsProject: springcloud-alibaba-nacos
  • @BelongsPackage: com.bruce
  • @CreateTime: 2021-02-18 13:16
  • @Description: TODO
    */
    @SpringBootApplication
    public class AppConsumer {
    public static void main(String[] args) {
    SpringApplication.run(AppConsumer.class);
    }
    }

啟動并測試

查看注冊列表


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213499.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213499.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213499.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

聲明式數據建模、定義簡單易懂:下一代 ORM 助你效率倍增 | 開源日報 No.102

prisma/prisma Stars: 34.0k License: Apache-2.0 Prisma 是一個下一代 ORM&#xff0c;包括以下工具&#xff1a; Prisma Client&#xff1a;為 Node.js 和 TypeScript 自動生成的類型安全查詢構建器Prisma Migrate&#xff1a;聲明式數據建模和遷移系統Prisma Studio&#…

山人求道篇:五、交易中的大道至簡與奧卡姆剃刀

量化的剃刀不是減去因子、減去代碼&#xff0c;而是減去冗余信息量 市面上有的策略對各品種設置了不同參數&#xff0c;每個品種進場不一樣就算了&#xff0c;出場參數還不一樣&#xff0c;那你說他到底賺的是什么利潤呢&#xff1f; 他自己也不知道&#xff0c;主要目的是為…

鴻蒙應用開發(二)環境搭建

開發流程 IDE下載 首先下載HUAWEI DevEco Studio&#xff0c;介紹首次啟動DevEco Studio的配置向導&#xff1a; 運行已安裝的DevEco Studio&#xff0c;首次使用&#xff0c;請選擇Do not import settings&#xff0c;單擊OK。安裝Node.js與ohpm。node.js 是基于 V8 引擎構…

JavaScript常用技巧專題二

文章目錄 一、前言二、生成隨機字符串三、轉義HTML特殊字符四、單詞首字母大寫五、將字符串轉換為小駝峰六、刪除數組中的重復值七、移除數組中的假值八、獲取兩個數字之間的隨機數九、將數字截斷到固定的小數點十、日期10.1、計算兩個日期之間天數10.2、從日期中獲取是一年中的…

【Java編程實現 9 * 9 乘法表格打印四種形態,七種打法】

Java編程實現 9 * 9 乘法表格打印四種形態&#xff0c;七種方法打印 廢話篇打印 9 * 9 乘法表格嵌套for循環實現左下角打印嵌套for循環實現左上角打印嵌套for循環實現右上角打印嵌套for循環實現右下角打印 使用while循環打印 9 * 9 乘法表格&#xff08;一&#xff09;使用whil…

1003 我要通過!

“答案正確”是自動判題系統給出的最令人歡喜的回復。本題屬于 PAT 的“答案正確”大派送 —— 只要讀入的字符串滿足下列條件&#xff0c;系統就輸出“答案正確”&#xff0c;否則輸出“答案錯誤”。 得到“答案正確”的條件是&#xff1a; 字符串中必須僅有 P、 A、 T這三種…

詳解Keras3.0 Layers API: Core layers

1、Input keras.Input(shapeNone,batch_sizeNone,dtypeNone,sparseNone,batch_shapeNone,nameNone,tensorNone, ) 參數說明 shape: 輸入張量的形狀。如果為None&#xff0c;則可以動態地指定形狀。batch_size: 批處理大小。如果為None&#xff0c;則可以動態地指定批處理大小…

基于SpringBoot+Vue前后端分離的景點數據分析平臺(Java畢業設計)

大家好&#xff0c;我是DeBug&#xff0c;很高興你能來閱讀&#xff01;作為一名熱愛編程的程序員&#xff0c;我希望通過這些教學筆記與大家分享我的編程經驗和知識。在這里&#xff0c;我將會結合實際項目經驗&#xff0c;分享編程技巧、最佳實踐以及解決問題的方法。無論你是…

awt中文亂碼-Intellij IDEA

亂碼的根本原因在于秦始皇嘎太早了&#xff08;bushi 解決方法&#xff1a;肉眼可見的編碼設置統一為GBK 1.打開設置找到文件編碼 2.肉眼可見的編碼統統改成GBK 有人該問了&#xff0c;為什么不改成utf-8&#xff0c;因為awt的編碼由操作系統決定&#xff0c;我的是win家庭中…

Nextui使用

安裝和使用 https://nextui.org/docs/frameworks/nextjs 自定義主題 https://nextui.org/docs/customization/customize-theme // tailwind.config.js const {nextui} require("nextui-org/react");/** type {import(tailwindcss).Config} */ module.exports {…

deepstream docker安裝

介紹 deepstream為dGPU和Jetson平臺提供dockers containers&#xff0c;這些鏡像可以方便開發者很快地部署deepstream應用。deepstream的docker images可以在NGC web中得到。 安裝Docker Docker 是一個開源的容器化平臺&#xff0c;它允許你構建&#xff0c;測試&#xff0c…

29. 如何在Spring所有BeanDefinition注冊完后做擴展?

如何在Spring所有BeanDefinition注冊完后做擴展? 通常可以使用beanFactoryPostProcessor 對已注冊的BeanDefinition進行修改或者通過它的子接口BeanDefinitionRegistryPostProcessor 再進行注冊額外擴展 BeanDefinitionRegistryPostProcessor 1、概述 public interface Bea…

0基礎學java-day18-( 坦克大戰【2】)

課件資源放在文末 1.線程-應用到坦克大戰 1.1 坦克大戰 0.3 【坦克類&#xff1a;包括坦克的基本屬性&#xff0c;以及坦克的移動方法】 package com.hspedu.tankgame03;/*** author 韓順平* version 1.0*/ public class Tank {private int x;//坦克的橫坐標private int y;…

XMemcached network layout exception java.nio.channels.ClosedChannelException

java.nio.channels.ClosedChannelException 表示嘗試在已關閉的通道上進行 I/O 操作&#xff0c;通常發生在網絡連接意外關閉后嘗試在關閉的通道上執行讀取或寫入操作。 XMemcached network layout exception 可能是由于 XMemcached 客戶端在嘗試與 Memcached 服務器通信時發生…

一些AG10K FPGA 調試的建議-Douglas

PLL AGM FPGA 在配置成功時&#xff0c;PLL 已經完成鎖定&#xff0c;lock 信號已經變高&#xff1b;如果原設計中用 lock 信號輸出實現系統 reset 的復位功能&#xff0c;就不能正確完成上電復位&#xff1b;同時&#xff0c;為了保證 PLL 相移的穩定&#xff0c;我們需要在 P…

C++筆記之重載和重寫辨別

C筆記之重載和重寫辨別 code review! 文章目錄 C筆記之重載和重寫辨別重載&#xff08;overloading&#xff09;重寫&#xff08;Overriding&#xff09; 在C中&#xff0c;重載&#xff08;overloading&#xff09;和重寫&#xff08;overriding&#xff09;是面向對象編程中…

筆記69:Conv1d 和 Conv2d 之間的區別

筆記地址&#xff1a;D:\work_file\&#xff08;4&#xff09;DeepLearning_Learning\03_個人筆記\4. Transformer 網絡變體 a a a a a a a a a a a

設計模式-門面模式(Facade)

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、定義二、結構 前言 在組件構建過程中&#xff0c;某些接口之間直接依賴會帶來很多問題&#xff0c;甚至無法直接實現。采用一層間接接口&#xff0c;來隔離…

SpringBoot報No qualifying bean of type ‘com.lzk.mapper.UserMapper‘ available

這個異常是SpringBoot程序沒有找到要Bean&#xff0c;這里提示找不到UserMapper&#xff0c;有以下三種解決方式&#xff1a; 在UserMapper上添加注解MapperMapper public interface UserMapper extends BaseMapper<User> { }在啟動類上進行Mapper包掃描&#xff0c;不用…

【IC前端虛擬項目】工程目錄組織說明

【IC前端虛擬項目】數據搬運指令處理模塊前端實現虛擬項目說明-CSDN博客 文檔目錄在“MVU芯片前端設計驗證虛擬項目”中&#xff0c;截至本篇文章時&#xff0c;包含了MVU_FS.md/project_req.md和mvu_vp_list.xlsx三個文件。 MVU_FS是模塊的方案文檔&#xff0c;除了feature和…