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 文件。补充文档版权信息。更新文件头部的元数据描述。规范文件命名和目录结构。
This commit is contained in:
@@ -0,0 +1,201 @@
|
||||
# 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 配置
|
||||
|
||||
```yaml
|
||||
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`)
|
||||
|
||||
```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 配置
|
||||
|
||||
```yaml
|
||||
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 配置
|
||||
|
||||
```yaml
|
||||
# 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集群状态,确保至少两个实际节点正常运行
|
||||
Reference in New Issue
Block a user