本篇文章将带你一步步了解 Nacos 的基本概念及其强大功能,并通过简单易懂的步骤指导你如何使用 Docker 快速搭建和配置 Nacos 环境。无论是服务发现、动态配置还是数据库支持,Nacos 都能帮助你高效管理云原生应用。
Nacos简介
Nacos(Dynamic Naming and Configuration Service)是一个开源的服务发现与配置管理平台,旨在帮助开发者更轻松地构建云原生应用。Nacos 提供了服务注册和发现、动态配置管理、服务健康检查和动态 DNS 等功能。
以下是 Nacos 的一些主要特点:
- 服务发现:Nacos 支持通过 RESTful API 和控制台进行服务注册和发现,能够动态跟踪和管理服务状态。
- 动态配置管理:允许用户在不重启应用的情况下更新应用的配置,支持配置的热更新。
- 多种数据源支持:Nacos 支持多种数据源,包括 MySQL、PostgreSQL 和嵌入式数据库等,方便用户选择。
- 易于使用:提供友好的 web 控制台,用户可以通过图形界面来管理服务和配置,无需编写太多代码。
- 兼容性:Nacos 可以与 Spring Cloud、Kubernetes 等多种框架和平台无缝集成,非常适合微服务架构的应用。
通过以上功能,Nacos 为开发者提供了一个灵活、可靠的服务管理解决方案,提升了云原生应用的开发效率和可维护性。
任务描述
在本任务中,我们将学习如何使用 Nacos 构建一个服务发现与配置管理平台。
任务实施
1、拉取镜像
docker pull nacos/nacos-server
2、挂载目录,用于映射到容器,目录按自己的情况创建
docker volume create nacos_test
mkdir -p /var/lib/docker/volumes/nacos_test/logs/ #新建logs目录
mkdir -p /var/lib/docker/volumes/nacos_test/init.d/
vim /var/lib/docker/volumes/nacos_test/init.d/custom.properties #修改配置文件
3、mysql新建nacos的数据库,并执行脚本 sql脚本地址如下:
4、修改配置文件custom.properties
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.3.56:3307/nacos_test?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true
5、启动容器
docker run --network my_network \
--name nacos_test -d \
-p 8849:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=526m \
-e JVM_XMX=526m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /var/lib/docker/volumes/nacos_test/logs:/home/nacos/logs \
-v /var/lib/docker/volumes/init.d/custom.properties:/home/nacos/init.d/custom.properties \
nacos/nacos-server