Files
agent-skills/skills/g3fo-docs/references/middleware/nacos/deploy.md
T
ken.li 3525aee49e feat: 新增中间件文档和内部通讯技能
新增中间件相关文档包括 RocketMQ、Nacos、PowerJob 的部署指南和故障分析文档,完善 Keepalived 和 MySQL 的文档内容。新增内部通讯技能模板和示例文件,包括 3P更新、公司通讯、FAQ回答等格式指南。优化服务文档结构,补充 FIX 引擎高可用架构说明。新增中间件综合指南,详细说明高可用部署方案和灾备转换原理。

新增 RocketMQ 5.3.2 集群部署文档,包含 Controller 模式详解和详细配置说明。新增 Nacos 和 PowerJob 部署文档,补充服务依赖和关键配置。更新 MySQL 故障分析文档,优化复制冲突解决流程。新增内部通讯技能模板文件,规范公司内部通讯格式。

docs: 补充服务文档和中间件 TODO 列表

新增 g3fo-exchange-fix-engine-service 服务文档,详细说明服务职责和关键配置。新增中间件 TODO 列表,跟踪待补充的文档内容。更新 Keepalived 部署文档,新增主库抢占前置检查脚本和配置说明。优化中间件文档结构,补充常见问题和性能优化建议。

style: 统一文档格式和代码块样式

统一所有文档的代码块格式和标题层级。优化表格显示样式,增强可读性。规范环境变量和配置项的显示方式。调整文档结构,确保逻辑清晰。修复部分拼写错误和格式问题。

chore: 新增 LICENSE 文件

新增内部通讯技能的 Apache 2.0 LICENSE 文件。补充文档版权信息。更新文件头部的元数据描述。规范文件命名和目录结构。
2026-01-23 17:15:16 +08:00

7.1 KiB
Raw Blame History

Nacos 部署配置

Nacos 用途说明

Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。在项目中,Nacos 主要用于以下场景:

1. 注册中心

  • 服务注册:所有微服务实例启动时会自动向 Nacos 注册自己的信息,包括服务名称、IP 地址、端口号等
  • 服务健康检查:Nacos 会定期检查注册的服务实例是否健康,自动剔除不健康的实例
  • 高可用设计:通过集群部署确保注册中心的可用性,避免单点故障

2. 服务发现

  • 服务消费者查找服务:服务消费者通过 Nacos 获取所需服务的可用实例列表
  • 负载均衡:提供服务实例的负载均衡策略,支持权重配置
  • 实时更新:服务实例变化时,Nacos 会实时通知消费者,确保服务列表的准确性

3. Dubbo 注册中心

  • Dubbo 服务注册:Dubbo 服务提供者将服务注册到 Nacos
  • Dubbo 服务发现:Dubbo 服务消费者从 Nacos 获取服务列表
  • 元数据管理:Dubbo 服务的元数据信息(如接口定义、方法签名等)存储在 Nacos 中

4. 配置中心

  • 集中式配置管理:所有服务的配置集中存储在 Nacos 中,避免配置分散在各个服务中
  • 动态配置更新:支持配置的动态修改,无需重启服务即可生效
  • 配置版本管理:记录配置的历史版本,支持回滚操作
  • 配置分组与命名空间:支持按环境、应用等维度管理配置

Docker Compose 配置

nacos:
    image: nacos-registry.cn-hangzhou.cr.aliyuncs.com/nacos/nacos-server:v3.1.1
    container_name: nacos
    restart: always
    depends_on:
      - mysql
    deploy:
      resources:
        limits:
          memory: 2G
      replicas: 1
      placement:
        constraints:
          - node.role == manager
    ports:
      - 8848:8848
      - 8849:8080
      - 9848:9848
      - 9849:9849
      - 7848:7848
      - 6848:9080
    volumes:
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
      - /data/nacos/conf/application.properties:/home/nacos/conf/application.properties
      - /data/nacos/conf/cluster.conf:/home/nacos/conf/cluster.conf
      - /data/nacos/data:/home/nacos/data
      - /data/nacos/logs:/home/nacos/logs
      - /data/nacos/lib:/home/nacos/lib
    environment:
      - JAVA_OPT=-javaagent:/home/nacos/lib/jasypt-agent.jar
      - TZ=Asia/Hong_Kong
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MODE=cluster
      - NACOS_AUTH_TOKEN=LldB9CGYrmmbhIQOIFlg3L3avFB1wbUw8s1E0lL6WZc=
      - NACOS_AUTH_IDENTITY_KEY=G3SF
      - NACOS_AUTH_IDENTITY_VALUE=afe123456
      - NACOS_SERVERS=192.168.3.230:8848 192.168.3.200:8848 192.168.4.250:8848

集群配置文件 (/data/nacos/conf/cluster.conf)

#2025-12-29T09:21:31.265596226
192.168.3.200:8848
192.168.3.230:8848
192.168.4.250:8848

应用配置文件 (/data/nacos/conf/application.properties)

nacos.server.main.port=8848
nacos.inetutils.prefer-hostname-over-ip=false
### Specify local server's IP:
nacos.inetutils.ip-address=192.168.3.230
spring.sql.init.platform=mysql
### Count of DB:
db.num=1
db.url.0=jdbc:mysql://192.168.3.233:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=afe123456
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
nacos.config.push.maxRetryTime=50
nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000
nacos.ai.mcp.registry.port=9080
nacos.server.contextPath=/nacos
server.tomcat.accesslog.enabled=true
### accesslog automatic cleaning time
server.tomcat.accesslog.max-days=30

### The access log pattern:
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i

server.tomcat.basedir=file:.

#*************** API Related Configurations ***************#
### Include message field
server.error.include-message=ALWAYS
#*************** Nacos Console Related Configurations ***************#
### Nacos Console Main port
nacos.console.port=8080
### Nacos Server Web context path:
nacos.console.contextPath=

### Nacos Server context path, which link to nacos server `nacos.server.contextPath`, works when deployment type is `console`
nacos.console.remote.server.context-path=/nacos

nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**

### The auth system to use, default 'nacos' and 'ldap' is supported, other type should be implemented by yourself:
nacos.core.auth.system.type=nacos

### If turn on auth system:
# Whether open nacos server API auth system
nacos.core.auth.enabled=false
# Whether open nacos admin API auth system
nacos.core.auth.admin.enabled=false
# Whether open nacos console API auth system
nacos.core.auth.console.enabled=false

### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=true
nacos.core.auth.server.identity.key=
nacos.core.auth.server.identity.value=

nacos.core.auth.plugin.nacos.token.cache.enable=false
nacos.core.auth.plugin.nacos.token.expire.seconds=18000
### The default token (Base64 string):
#nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
nacos.core.auth.plugin.nacos.token.secret.key=
nacos.istio.mcp.server.enabled=false
nacos.k8s.sync.enabled=false
nacos.deployment.type=merged

Spring Boot 配置连接集群

Spring Cloud 配置

spring:
  cloud:
    nacos:
      # 注册中心
      discovery:
        enabled: true
        server-addr: 192.168.3.200:8848,192.168.3.230:8848
        service: ${app.service-name}-app
        namespace: dev
        group: app-server

Dubbo 配置

# Dubbo配置
dubbo:
  registry:
    address: nacos://192.168.3.230:8848,192.168.3.200:8848
  metadata-report:
    address: nacos://192.168.3.230:8848,192.168.3.200:8848

部署说明

  1. 当前部署情况:

    • 实际部署了两台主机:192.168.3.200 和 192.168.3.230
    • 192.168.4.250 是虚拟节点,用于解决集群节点显示问题
  2. 集群显示问题:

    • 配置3个节点(实际2个+1个虚拟)可以解决节点状态显示异常问题
    • 当只配置2个实际节点时,会出现节点互相看不到的情况
    • 添加虚拟节点后,实际节点可以正常显示在线状态
  3. 数据同步:

    • 配置3个节点后,数据可以在实际节点间正常同步
    • 在任一实际节点修改配置,其他实际节点可以获取到最新数据
  4. 注意事项:

    • 确保MySQL数据库已正确配置并可访问
    • 调整 nacos.inetutils.ip-address 为当前服务器的实际IP
    • 根据实际部署环境调整 volumes 映射路径
    • 监控Nacos集群状态,确保至少两个实际节点正常运行