Nacos 封裝與 Docker 部署實踐

Nacos 封裝與 Docker 部署指南

0 準備工作

核心概念?

命名空間:用于隔離不同環境(如 dev、test、prod)或業務線,默認命名空間為public。?
數據 ID:配置集的唯一標識,命名規則推薦為{服務名}-{profile}.{擴展名}(如user-service-dev.yaml)。?
分組:用于區分同一命名空間下的不同配置集,默認分組為DEFAULT_GROUP。

在pom.xml中添加:

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.2.7.RELEASE</version> <!-- 與Spring Cloud版本匹配 -->
</dependency>

1.封裝代碼


@SpringBootApplication(scanBasePackages = "com.alibaba.nacos")
@ServletComponentScan
@EnableScheduling
public class SpringNacosApplication {// 建議將這些配置移到application.properties中@Value("${nacos.standalone}")private String standalone;@Value("${nacos.core.auth.enabled}") private String authEnabled;public static void main(String[] args) {SpringApplication.run(JeecgNacosApplication.class, args);}// 添加配置類@Configurationpublic static class NacosConfig {@Beanpublic ConfigurableEnvironment environment(ConfigurableEnvironment env) {Map<String, Object> config = new HashMap<>();config.put("nacos.standalone", standalone);config.put("nacos.core.auth.enabled", authEnabled);config.put("server.tomcat.basedir", "logs");config.put("server.port", "8848");env.getPropertySources().addFirst(new MapPropertySource("nacos-config", config));return env;}}
}

在 application.properties 中添加以下配置:

# Nacos 配置
nacos.standalone=true
nacos.core.auth.enabled=false# 服務器配置
server.port=8848
server.tomcat.basedir=logs

對于生產環境,建議:

  • 使用集群模式而非單機模式
  • 啟用鑒權功能
  • 配置持久化到數據庫
  • 設置合適的 JVM 參數

2. 部署前提??

在部署 Nacos 前,需確保環境滿足以下條件:?

  • JDK 版本:至少 JDK 1.8(推薦 1.8+),需配置JAVA_HOME環境變量。?
  • -MySQL(可選):集群模式需使用 MySQL 存儲配置(推薦 5.7 + 或 8.0),單機模式可使用默認嵌入式數據庫(Derby),但生產環境建議用 MySQL。?
  • 端口占用:Nacos 默認使用 3 個端口,需確保未被占用:?
    8848:主端口(控制臺與 API 通信);?
    9848:客戶端與服務端通信的 gRPC 端口;?
    9849:服務端間通信的 gRPC 端口。
    。?

3 Docker 部署配置

Dockerfile

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

4. 端口配置

4.1. 防火墻和安全組配置

確保以下端口在服務器/開發機上開放:
8848 - Nacos 服務端口
9848 - Nacos 集群通信端口(如果是集群模式)
7848 - Nacos 集群選舉端口(如果是集群模式)

4.2 容器化部署端口映射

ports:

  • “8848:8848” # 主機端口:容器端口
  • “9848:9848” # 集群通信端口
    dockers部署 這個很重要

4.3 啟動容器

docker run -d \--name nacos-standalone \-p 8848:8848 \-p 9848:9848 \-p 9849:9849 \-e MODE=standalone \  # 指定單機模式-e JVM_XMS=512m \     # 初始堆內存-e JVM_XMX=512m \     # 最大堆內存nacos/nacos:2.2.3

參數說明:

  • -p:映射容器端口到宿主機(必須包含 8848、9849、9848);
  • MODE=standalone:強制單機模式(默認集群模式);
  • JVM_*:調整 JVM 參數,避免內存占用過高。

通用注意事項:
集群部署時,所有節點需處于同一網絡,確保 9848/9849 端口可互通(gRPC 通信);
啟動前檢查端口占用,避免與其他服務沖突(可通過netstat -tunlp | grep 8848排查)。

5. 微服務連接配置

其他微服務連接 Nacos 時,確保配置正確的地址和端口:

spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848config:server-addr: 127.0.0.1:8848

6、常見問題與注意事項?

  • 啟動失敗:檢查端口是否被占用(netstat -tunlp | grep 8848)、JDK 環境是否正確、數據庫連接是否正常。?
  • 集群數據不一致:確保所有節點cluster.conf配置一致,且連接同一 MySQL。?
  • 配置不生效:檢查bootstrap.yml中的server-addr、namespace(需用 ID)、dataId命名是否正確。?
  • 安全加固:生產環境需開啟 Nacos 認證(application.properties中設置nacos.core.auth.enabled=true),并修改默認用戶名密碼。?
    通過以上步驟,可完成 Nacos 的部署與配置管理。Nacos 的高可用設計和動態配置能力,能有效簡化微服務架構中的服務治理與配置維護工作。?

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

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

相關文章

Vue2——4

組件的樣式沖突 scoped默認情況&#xff1a;寫在組件中的樣式會 全局生效 → 因此很容易造成多個組件之間的樣式沖突問題。1. 全局樣式: 默認組件中的樣式會作用到全局2. 局部樣式: 可以給組件加上 scoped 屬性, 可以讓樣式只作用于當前組件原理&#xff1a;當前組件內標簽都被…

30天打好數模基礎-邏輯回歸講解

案例代碼實現一、代碼說明本案例針對信用卡欺詐檢測二分類問題&#xff0c;完整實現邏輯回歸的數據生成→預處理→模型訓練→評估→閾值調整→決策邊界可視化流程。數據生成&#xff1a;模擬1000條交易數據&#xff0c;其中欺詐樣本占20%&#xff08;類不平衡&#xff09;&…

CDH yarn 重啟后RM兩個備

yarn rmadmin -transitionToActive --forcemanual rm1 cd /opt/cloudera/parcels/CDH/lib/zookeeper/bin/ ./zkCli.sh -server IT-CDH-Node01:2181 查看是否存在殘留的ActiveBreadCrumb節點 ls /yarn-leader-election/yarnRM #若輸出只有[ActiveBreadCrumb]&#xff08;正常應…

HTML5音頻技術及Web Audio API深入解析

本文還有配套的精品資源&#xff0c;點擊獲取 簡介&#xff1a;音頻處理在IT行業中的多媒體、游戲開發、在線教育和音樂制作等應用領域中至關重要。本文詳細探討了HTML5中的 <audio> 標簽和Web Audio API等技術&#xff0c;涉及音頻的嵌入、播放、控制以及優化。特別…

每日面試題13:垃圾回收器什么時候STW?

STW是什么&#xff1f;——深入理解JVM垃圾回收中的"Stop-The-World"在Java程序運行過程中&#xff0c;JVM會通過垃圾回收&#xff08;GC&#xff09;自動管理內存&#xff0c;釋放不再使用的對象以騰出空間。但你是否遇到過程序突然卡頓的情況&#xff1f;這可能與G…

【系統全面】常用SQL語句大全

一、基本查詢語句 查詢所有數據&#xff1a; SELECT * FROM 表名;查詢特定列&#xff1a; SELECT 列名1, 列名2 FROM 表名;條件查詢&#xff1a; SELECT * FROM 表名 WHERE 條件;模糊查詢&#xff1a; SELECT * FROM 表名 WHERE 列名 LIKE 模式%;排序查詢&#xff1a; SELECT *…

Spring之SSM整合流程詳解(Spring+SpringMVC+MyBatis)

Spring之SSM整合流程詳解-SpringSpringMVCMyBatis一、SSM整合的核心思路二、環境準備與依賴配置2.1 開發環境2.2 Maven依賴&#xff08;pom.xml&#xff09;三、整合配置文件&#xff08;核心步驟&#xff09;3.1 數據庫配置&#xff08;db.properties&#xff09;3.2 Spring核…

C++STL系列之set和map系列

前言 set和map都是關聯式容器&#xff0c;stl中樹形結構的有四種&#xff0c;set&#xff0c;map&#xff0c;multiset,multimap.本次主要是講他們的模擬實現和用法。 一、set、map、multiset、multimap set set的中文意思是集合&#xff0c;集合就說明不允許重復的元素 1……

Linux 磁盤掛載,查看uuid

lsblk -o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT,SIZEsudo ntfsfix /dev/nvme1n1p1sudo mount -o remount,rw /dev/nvme1n1p1 /media/yake/Datasudo ntfsfix /dev/sda2sudo mount -o remount,rw /dev/sda2 /media/yake/MyData

【AJAX】XMLHttpRequest、Promise 與 axios的關系

目錄 一、AJAX原理 —— XMLHttpRequest 1.1 使用XMLHttpRequest 二、 XMLHttpRequest - 查詢參數 &#xff08;就是往服務器后面拼接要查詢的字符串&#xff09; 三、 地區查詢 四、 XMLHttpRequest - 數據提交 五、 認識Promise 5.1 為什么 JavaScript 需要異步&#…

C++中的stack和queue

C中的stack和queue 前言 這一節的內容對于stack和queue的使用介紹會比較少&#xff0c;主要是因為stack和queue的使用十分簡單&#xff0c;而且他們的功能主要也是在做題的時候才會顯現。這一欄目暫時不會寫關于做題的內容&#xff0c;后續我會額外開一個做題日記的欄目的。 這…

Spring Bean生命周期七步曲:定義、實例化、初始化、使用、銷毀

各位小猿&#xff0c;程序員小猿開發筆記&#xff0c;希望大家共同進步。 引言 1.整體流程圖 2.各階段分析 1??定義階段 1.1 定位資源 Spring 掃描 Component、Service、Controller 等注解的類或解析 XML/Java Config 中的 Bean 定義 1.2定義 BeanDefinition 解析類信息…

API安全監測工具:數字經濟的免疫哨兵

&#x1f4a5; 企業的三重致命威脅 1. 漏洞潛伏的定時炸彈 某支付平臺未檢測出API的批量數據泄露漏洞&#xff0c;導致230萬用戶信息被盜&#xff0c;面臨GDPR 1.8億歐元罰單&#xff08;IBM X-Force 2024報告&#xff09;。傳統掃描器對邏輯漏洞漏檢率超40%&#xff08;OWASP基…

Matplotlib詳細教程(基礎介紹,參數調整,繪圖教程)

目錄 一、初識Matploblib 1.1 安裝 Matplotlib 1.2、Matplotlib 的兩種接口風格 1.3、Figure 和 Axes 的深度理解 1.4 設置畫布大小 1.5 設置網格線 1.6 設置坐標軸 1.7 設置刻度和標簽 1.8 添加圖例和標題 1.9 設置中文顯示 1.10 調整子圖布局 二、常用繪圖教程 2…

Redis高可用架構演進面試筆記

1. 主從復制架構 核心概念Redis單節點并發能力有限&#xff0c;通過主從集群實現讀寫分離提升性能&#xff1a; Master節點&#xff1a;負責寫操作Slave節點&#xff1a;負責讀操作&#xff0c;從主節點同步數據 主從同步流程 全量同步&#xff08;首次同步&#xff09;建立連接…

無人機保養指南

定期清潔無人機在使用后容易積累灰塵、沙礫等雜物&#xff0c;需及時清潔。使用軟毛刷或壓縮空氣清除電機、螺旋槳和機身縫隙中的雜質。避免使用濕布直接擦拭電子元件&#xff0c;防止短路。電池維護鋰電池是無人機的核心部件&#xff0c;需避免過度放電或充電。長期存放時應保…

vlm MiniCPM 學習部署實戰

目錄 開源地址&#xff1a; 模型repo下載&#xff1a; 單圖片demo&#xff1a; 多圖推理demo&#xff1a; 論文學習筆記&#xff1a; 部署完整教程&#xff1a; 微調教程&#xff1a; 部署&#xff0c;微調教程&#xff0c;視頻實測 BitCPM4 技術報告 創意&#xff1…

92套畢業相冊PPT模版

致青春某大學同學聚會PPT模版&#xff0c;那些年我們一起走過的歲月PPT模版&#xff0c;某學院某班同學聯誼會PPT模版&#xff0c;匆匆那年PPT模版&#xff0c;青春的紀念冊PPT模版&#xff0c;梔子花開PPT模版&#xff0c;畢業紀念冊PPT模版。 92套畢業相冊PPT模版&#xff1…

爬蟲基礎概念

網絡爬蟲概述 概念 網絡爬蟲&#xff08;Web Crawler&#xff09;&#xff0c;也稱為網絡蜘蛛&#xff08;Web Spider&#xff09;或機器人&#xff08;Bot&#xff09;&#xff0c;是一種自動化程序&#xff0c;用于系統地瀏覽互聯網并收集網頁信息。它模擬人類瀏覽器行為&…

java8 stream流操作的flatMap

我們來詳細解釋一下 Java 8 Stream API 中的 flatMap 操作。理解 flatMap 的關鍵在于將其與 map 操作進行對比。??核心概念&#xff1a;????map 操作&#xff1a;??作用&#xff1a;將一個流中的每個元素??轉換??為另一個元素&#xff08;類型可以不同&#xff09;…