diff --git a/framework/fit/java/fit-builtin/plugins/fit-service-coordination-nacos/README.md b/framework/fit/java/fit-builtin/plugins/fit-service-coordination-nacos/README.md
index 659702673..234e3bb3d 100644
--- a/framework/fit/java/fit-builtin/plugins/fit-service-coordination-nacos/README.md
+++ b/framework/fit/java/fit-builtin/plugins/fit-service-coordination-nacos/README.md
@@ -4,6 +4,33 @@
FIT Service Coordination Nacos 插件是 FIT Framework 的服务协调插件,提供基于 Nacos 的服务注册与发现功能。该插件将 FIT 框架与 Alibaba Nacos 注册中心集成。
+## 重要说明
+
+由于 `fit-service-coordination-nacos` 与 `fit-service-coordination-simple` 两种注册中心插件存在冲突,我们选择默认使用内存版注册中心。
+
+### 不同启动方式的插件使用
+
+- **IDEA 启动方式和 `java -jar` 启动方式**:只需要按需引入依赖即可,无需额外配置。
+
+- **`fit start` 命令启动方式**:
+ - 默认只有 `fit-service-coordination-simple` 插件在 `/build/plugins` 目录
+ - 如果需要使用 Nacos 版注册中心,操作步骤:
+ 1. **整体编译项目**:
+ ```bash
+ cd framework/fit/java
+ mvn clean package
+ ```
+ 2. **放入 build/plugins 目录**:
+ ```bash
+ cp fit-builtin/plugins/fit-service-coordination-nacos/target/fit-service-coordination-nacos-3.6.0-SNAPSHOT.jar ../../../build/plugins/
+ ```
+ 3. **移除 Simple 插件**:
+ ```bash
+ rm ../../../build/plugins/fit-service-coordination-simple-3.6.0-SNAPSHOT.jar
+ ```
+
+> **说明**:`build/plugins` 目录中只能有一个注册中心插件,Nacos 和 Simple 不能同时存在。
+
## 快速开始
### 1. Nacos 部署
@@ -31,7 +58,13 @@ sh startup.sh -m standalone
startup.cmd -m standalone
```
-访问控制台:http://localhost:8848/nacos (默认用户名/密码:nacos/nacos)
+访问控制台:http://localhost:8848/nacos
+
+**默认登录凭据**:
+- 用户名:`nacos`
+- 密码:`nacos`
+
+> ⚠️ **安全提醒**:默认凭据仅适用于开发环境。在生产环境中,请务必修改默认的用户名和密码以确保系统安全。
### 2. 插件配置
@@ -51,7 +84,7 @@ startup.cmd -m standalone
在 `application.yml` 中配置 Nacos 连接信息:
```yaml
-# Matata 服务配置
+# 基础配置示例
matata:
registry:
# Nacos 服务器地址
@@ -61,6 +94,22 @@ matata:
mode: 'PROXY'
# 环境命名空间
environment: local
+
+# 完整配置示例(可选)
+matata:
+ registry:
+ host: 'localhost'
+ port: 8848
+ mode: 'PROXY'
+ environment: 'local'
+ # Nacos 特定配置
+ nacos:
+ username: 'nacos' # Nacos 用户名(可选)
+ password: 'nacos' # Nacos 密码(可选)
+ weight: 1.0 # 服务权重
+ isEphemeral: true # 是否为临时实例
+ heartbeatInterval: 5000 # 心跳间隔(毫秒)
+ heartbeatTimeout: 15000 # 心跳超时(毫秒)
```
## 配置参数说明
@@ -85,4 +134,163 @@ matata:
| `matata.registry.nacos.weight` | Float | 否 | 1.0 | 服务权重 |
| `matata.registry.nacos.isEphemeral` | Boolean | 否 | true | 是否为临时实例 |
| `matata.registry.nacos.heartbeatInterval` | Long | 否 | 5000 | 心跳间隔(毫秒) |
-| `matata.registry.nacos.heartbeatTimeout` | Long | 否 | 15000 | 心跳超时(毫秒) |
\ No newline at end of file
+| `matata.registry.nacos.heartbeatTimeout` | Long | 否 | 15000 | 心跳超时(毫秒) |
+
+## 使用示例
+
+### 完整示例项目
+
+FIT Framework 提供了一个完整的 Nacos 服务注册与发现示例项目,位于 `examples/fit-example/08-nacos-complicated-apps` 目录。
+
+#### 项目结构
+
+```
+08-nacos-complicated-apps/
+├── app-assistant/ # 客户端应用(助手服务)
+├── app-default-weather/ # 服务端应用(天气服务)
+├── service/ # 共享服务接口
+└── pom.xml # 父项目配置
+```
+
+#### 示例说明
+
+该示例演示了如何使用 Nacos 作为注册中心实现微服务之间的服务发现和调用:
+
+1. **服务提供者**(`app-default-weather`):
+ - 实现 `Weather` 接口
+ - 注册到 Nacos 注册中心
+ - 提供天气查询服务
+
+2. **服务消费者**(`app-assistant`):
+ - 通过 Nacos 发现天气服务
+ - 调用远程天气服务
+ - 提供 HTTP API 接口
+
+#### 关键配置
+
+**服务提供者配置**(`app-default-weather/src/main/resources/application.yml`):
+```yaml
+application:
+ name: 'default-weather'
+
+worker:
+ id: 'default-weather'
+ host: '127.0.0.1'
+ environment: 'local'
+
+matata:
+ registry:
+ mode: 'PROXY'
+ host: '127.0.0.1'
+ port: 8848
+ environment: 'local'
+
+server:
+ http:
+ port: 8081
+```
+
+**服务消费者配置**(`app-assistant/src/main/resources/application.yml`):
+```yaml
+application:
+ name: 'assistant'
+
+worker:
+ id: 'assistant'
+ host: '127.0.0.1'
+ environment: 'local'
+
+matata:
+ registry:
+ mode: 'PROXY'
+ host: '127.0.0.1'
+ port: 8848
+ environment: 'local'
+
+server:
+ http:
+ port: 8080
+```
+
+#### 核心代码
+
+**服务接口定义**(`service/src/main/java/modelengine/fit/example/Weather.java`):
+```java
+public interface Weather {
+ @Genericable(id = "Weather")
+ String get();
+}
+```
+
+**服务实现**(`app-default-weather/src/main/java/modelengine/fit/example/DefaultWeather.java`):
+```java
+@Component
+public class DefaultWeather implements Weather {
+ @Override
+ @Fitable(id = "default-weather")
+ public String get() {
+ return "Default weather application is working.";
+ }
+}
+```
+
+**服务调用**(`app-assistant/src/main/java/modelengine/fit/example/controller/AssistantController.java`):
+```java
+@Component
+public class AssistantController {
+ private final Weather weather;
+
+ public AssistantController(@Fit Weather weather) {
+ this.weather = weather;
+ }
+
+ @GetMapping(path = "/weather")
+ public String getWeather() {
+ return this.weather.get();
+ }
+}
+```
+
+#### 运行示例
+
+1. **启动 Nacos 服务器**(确保在 8848 端口运行)
+
+2. **启动服务提供者**:
+ ```bash
+ cd examples/fit-example/08-nacos-complicated-apps/app-default-weather
+ mvn clean package
+ java -jar target/app-default-weather-1.0-SNAPSHOT.jar
+ ```
+
+3. **启动服务消费者**:
+ ```bash
+ cd examples/fit-example/08-nacos-complicated-apps/app-assistant
+ mvn clean package
+ java -jar target/app-assistant-1.0-SNAPSHOT.jar
+ ```
+
+4. **测试服务调用**:
+ ```bash
+ curl http://localhost:8080/weather
+ ```
+
+#### 依赖配置
+
+在 `pom.xml` 中添加必要的依赖:
+
+```xml
+
+
+ org.fitframework
+ fit-starter
+ 3.6.0-SNAPSHOT
+
+
+
+
+ org.fitframework.plugin
+ fit-service-coordination-nacos
+ 3.6.0-SNAPSHOT
+ runtime
+
+```
\ No newline at end of file
diff --git a/framework/fit/java/fit-builtin/plugins/fit-service-coordination-nacos/pom.xml b/framework/fit/java/fit-builtin/plugins/fit-service-coordination-nacos/pom.xml
index 48c2f3981..9b6cbe673 100644
--- a/framework/fit/java/fit-builtin/plugins/fit-service-coordination-nacos/pom.xml
+++ b/framework/fit/java/fit-builtin/plugins/fit-service-coordination-nacos/pom.xml
@@ -69,27 +69,4 @@
test
-
-
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
-
-
- package
-
-
-
-
-
-
- run
-
-
-
-
-
-
\ No newline at end of file
diff --git a/framework/fit/python/fit_py_nacos_registry/README.md b/framework/fit/python/fit_py_nacos_registry/README.md
new file mode 100644
index 000000000..508a1280b
--- /dev/null
+++ b/framework/fit/python/fit_py_nacos_registry/README.md
@@ -0,0 +1,262 @@
+# FIT Python Nacos Registry 插件
+
+## 简介
+
+FIT Python Nacos Registry 插件是 FIT for Python 框架的服务注册中心插件,提供基于 Alibaba Nacos 的服务注册与发现功能。该插件实现了与 Java 版本兼容的 Nacos 服务协调机制,支持 Python 服务与 Java 服务的跨语言服务发现和调用。
+
+## 重要说明
+
+由于 `fit_py_nacos_registry` 插件的优先级默认高于内存版注册中心,只要该插件存在于 `plugin` 目录中,就会影响内存版注册中心的使用。因此:
+
+### 默认状态
+- 插件默认**不启用**,需要手动移动到 `plugin` 目录下才会生效
+- 当不使用 Nacos 时,应将插件移动到非 `plugin` 目录,避免影响内存版注册中心
+
+### 插件启用/禁用
+
+#### 启用 Nacos 插件
+```bash
+# 进入 FIT Python 根目录
+cd framework/fit/python
+
+# 将插件从根目录移动到 plugin 目录
+mv fit_py_nacos_registry plugin/
+echo "Nacos 插件已启用"
+```
+
+#### 禁用 Nacos 插件
+```bash
+# 将插件移动到其他位置(建议移动到 plugin 目录的上级目录)
+mv framework/fit/python/plugin/fit_py_nacos_registry framework/fit/python/
+```
+
+## 快速开始
+
+### 1. Nacos 部署
+
+#### 本地安装部署
+
+1. 下载 Nacos Server
+
+```bash
+# 下载 Nacos 2.3.0
+wget https://github.com/alibaba/nacos/releases/download/2.3.0/nacos-server-2.3.0.tar.gz
+
+# 解压
+tar -xvf nacos-server-2.3.0.tar.gz
+cd nacos/bin
+```
+
+2. 启动 Nacos
+
+```bash
+# Linux/Mac
+sh startup.sh -m standalone
+
+# Windows
+startup.cmd -m standalone
+```
+
+访问控制台:http://localhost:8848/nacos
+
+**默认登录凭据**:
+- 用户名:`nacos`
+- 密码:`nacos`
+
+> ⚠️ **安全提醒**:默认凭据仅适用于开发环境。在生产环境中,请务必修改默认的用户名和密码以确保系统安全。
+
+### 2. 插件配置
+
+#### 依赖安装
+
+确保已安装必要的 Python 依赖:
+
+```bash
+pip install nacos-sdk-python
+pip install pyyaml
+pip install requests
+```
+
+#### 配置文件
+
+在 `application.yml` 中配置 Nacos 连接信息:
+
+```yaml
+# 基础配置示例
+registry-center:
+ server:
+ mode: 'PROXY' # 使用代理模式连接 Nacos
+ addresses:
+ - "localhost:8848"
+ protocol: 2
+ formats:
+ - 1
+ - 2
+
+# Nacos 特定配置(可选)
+nacos:
+ username: 'nacos' # Nacos 用户名
+ password: 'nacos' # Nacos 密码
+ namespace: 'local' # 命名空间
+ weight: 1.0 # 服务权重
+ isEphemeral: true # 是否为临时实例
+ heartBeatInterval: 5000 # 心跳间隔(毫秒)
+ heartBeatTimeout: 15000 # 心跳超时(毫秒)
+ async:
+ timeout: 30 # 异步操作超时时间(秒)
+```
+
+## 配置参数说明
+
+### 基础配置
+
+| 参数 | 类型 | 必需 | 默认值 | 说明 |
+| --------------------------------- | ------- | ---- | ------ | --------------------------------------- |
+| `registry-center.server.mode` | String | 是 | - | 注册中心连接模式,使用 'PROXY' 连接 Nacos |
+| `registry-center.server.addresses`| List | 是 | - | Nacos 服务器地址列表 |
+| `registry-center.server.protocol` | Integer | 是 | - | 通信协议类型 |
+| `registry-center.server.formats` | List | 是 | - | 支持的数据格式 |
+
+### Nacos 特定配置
+
+| 参数 | 类型 | 必需 | 默认值 | 说明 |
+| --------------------------- | ------- | ---- | ------ | -------------------- |
+| `nacos.username` | String | 否 | - | Nacos 用户名 |
+| `nacos.password` | String | 否 | - | Nacos 密码 |
+| `nacos.accessKey` | String | 否 | - | 访问密钥 |
+| `nacos.secretKey` | String | 否 | - | 秘密密钥 |
+| `nacos.namespace` | String | 否 | "" | 命名空间 |
+| `nacos.weight` | Float | 否 | 1.0 | 服务权重 |
+| `nacos.isEphemeral` | Boolean | 否 | true | 是否为临时实例 |
+| `nacos.heartBeatInterval` | Long | 否 | 5000 | 心跳间隔(毫秒) |
+| `nacos.heartBeatTimeout` | Long | 否 | 15000 | 心跳超时(毫秒) |
+| `nacos.async.timeout` | Integer | 否 | 30 | 异步操作超时(秒) |
+
+## 插件管理
+
+### 目录结构
+
+```
+framework/fit/python/
+├── plugin/ # 活跃插件目录
+│ ├── fit_py_nacos_registry/ # Nacos 插件(启用状态)
+│ └── other_plugins/ # 其他插件
+├── fit_py_nacos_registry/ # Nacos 插件(禁用状态)
+└── other_directories/
+```
+
+### 管理命令
+
+#### 启用 Nacos 插件
+
+```bash
+# 进入 FIT Python 根目录
+cd framework/fit/python
+
+# 如果插件在根目录,移动到 plugin 目录
+if [ -d "fit_py_nacos_registry" ]; then
+ mv fit_py_nacos_registry plugin/
+ echo "Nacos 插件已启用"
+fi
+```
+
+#### 禁用 Nacos 插件
+
+```bash
+# 进入 FIT Python 根目录
+cd framework/fit/python
+
+# 如果插件在 plugin 目录,移动到根目录
+if [ -d "plugin/fit_py_nacos_registry" ]; then
+ mv plugin/fit_py_nacos_registry ./
+ echo "Nacos 插件已禁用,使用内存版注册中心"
+fi
+```
+
+### 验证插件状态
+
+#### 检查插件是否启用
+
+```bash
+# 检查 Nacos 插件是否在 plugin 目录
+if [ -d "framework/fit/python/plugin/fit_py_nacos_registry" ]; then
+ echo "✅ Nacos 插件已启用"
+else
+ echo "❌ Nacos 插件已禁用,使用内存版注册中心"
+fi
+```
+
+## 使用示例
+
+### 基本服务注册示例
+
+```python
+from fitframework import fitable
+from fitframework.api.decorators import fit_service
+
+@fit_service(service_id="weather_service")
+class WeatherService:
+ @fitable(fitable_id="get_weather")
+ def get_weather(self, city: str) -> str:
+ return f"Weather in {city}: Sunny, 25°C"
+```
+
+### 服务发现和调用示例
+
+```python
+from fitframework import inject_fit
+from fitframework.api.decorators import fit_service
+
+@fit_service(service_id="weather_client")
+class WeatherClient:
+ def __init__(self):
+ # 通过 FIT 框架自动发现并注入远程服务
+ self.weather_service = inject_fit("get_weather")
+
+ def get_city_weather(self, city: str) -> str:
+ # 调用远程服务(可能运行在其他 Python 或 Java 进程中)
+ return self.weather_service(city)
+```
+
+### 配置文件示例
+
+```yaml
+# 完整的应用配置示例
+app:
+ name: 'Weather Service'
+
+worker:
+ id: "weather-service-001"
+ protocol-priorities:
+ - 'HTTP:JSON'
+ - 'HTTP:CBOR'
+
+worker-environment:
+ env: 'local'
+ env-seq: 'local,dev,test,prod'
+
+http:
+ server:
+ enabled: true
+ address:
+ port: 9666
+ protocol: 2
+ formats: [1, 2]
+
+registry-center:
+ server:
+ mode: 'PROXY' # 使用 Nacos 代理模式
+ addresses:
+ - "localhost:8848"
+ protocol: 2
+ formats: [1, 2]
+
+nacos:
+ username: 'nacos'
+ password: 'nacos'
+ namespace: 'local'
+ weight: 1.0
+ isEphemeral: true
+ heartBeatInterval: 5000
+ heartBeatTimeout: 15000
+```
\ No newline at end of file
diff --git a/framework/fit/python/plugin/fit_py_nacos_registry/conf/application.yml b/framework/fit/python/fit_py_nacos_registry/conf/application.yml
similarity index 100%
rename from framework/fit/python/plugin/fit_py_nacos_registry/conf/application.yml
rename to framework/fit/python/fit_py_nacos_registry/conf/application.yml
diff --git a/framework/fit/python/plugin/fit_py_nacos_registry/conf/info.yml b/framework/fit/python/fit_py_nacos_registry/conf/info.yml
similarity index 100%
rename from framework/fit/python/plugin/fit_py_nacos_registry/conf/info.yml
rename to framework/fit/python/fit_py_nacos_registry/conf/info.yml
diff --git a/framework/fit/python/plugin/fit_py_nacos_registry/heartbeat/heartbeat_service.py b/framework/fit/python/fit_py_nacos_registry/heartbeat/heartbeat_service.py
similarity index 100%
rename from framework/fit/python/plugin/fit_py_nacos_registry/heartbeat/heartbeat_service.py
rename to framework/fit/python/fit_py_nacos_registry/heartbeat/heartbeat_service.py
diff --git a/framework/fit/python/plugin/fit_py_nacos_registry/service/__init__.py b/framework/fit/python/fit_py_nacos_registry/service/__init__.py
similarity index 100%
rename from framework/fit/python/plugin/fit_py_nacos_registry/service/__init__.py
rename to framework/fit/python/fit_py_nacos_registry/service/__init__.py
diff --git a/framework/fit/python/plugin/fit_py_nacos_registry/service/async_executor.py b/framework/fit/python/fit_py_nacos_registry/service/async_executor.py
similarity index 100%
rename from framework/fit/python/plugin/fit_py_nacos_registry/service/async_executor.py
rename to framework/fit/python/fit_py_nacos_registry/service/async_executor.py
diff --git a/framework/fit/python/plugin/fit_py_nacos_registry/service/config.py b/framework/fit/python/fit_py_nacos_registry/service/config.py
similarity index 100%
rename from framework/fit/python/plugin/fit_py_nacos_registry/service/config.py
rename to framework/fit/python/fit_py_nacos_registry/service/config.py
diff --git a/framework/fit/python/plugin/fit_py_nacos_registry/service/constants.py b/framework/fit/python/fit_py_nacos_registry/service/constants.py
similarity index 100%
rename from framework/fit/python/plugin/fit_py_nacos_registry/service/constants.py
rename to framework/fit/python/fit_py_nacos_registry/service/constants.py
diff --git a/framework/fit/python/plugin/fit_py_nacos_registry/service/nacos_registry_server.py b/framework/fit/python/fit_py_nacos_registry/service/nacos_registry_server.py
similarity index 100%
rename from framework/fit/python/plugin/fit_py_nacos_registry/service/nacos_registry_server.py
rename to framework/fit/python/fit_py_nacos_registry/service/nacos_registry_server.py
diff --git a/framework/fit/python/plugin/fit_py_nacos_registry/service/parsers.py b/framework/fit/python/fit_py_nacos_registry/service/parsers.py
similarity index 100%
rename from framework/fit/python/plugin/fit_py_nacos_registry/service/parsers.py
rename to framework/fit/python/fit_py_nacos_registry/service/parsers.py
diff --git a/framework/fit/python/plugin/fit_py_nacos_registry/service/utils.py b/framework/fit/python/fit_py_nacos_registry/service/utils.py
similarity index 100%
rename from framework/fit/python/plugin/fit_py_nacos_registry/service/utils.py
rename to framework/fit/python/fit_py_nacos_registry/service/utils.py