Skip to content

VCP分布式微服务器,让你的任何设备都成为VCPToolBox的算力中心吧!

Notifications You must be signed in to change notification settings

lioensky/VCPDistributedServer

Repository files navigation

VCP 分布式服务器节点

本项目是一个为 VCP (Variable & Command Protocol) 生态系统设计的独立服务器节点。它允许您通过在不同的机器上运行插件,来扩展您的主 VCP 服务器的能力和算力。

1. 项目目的

VCP 分布式服务器节点会连接到一台主 VCP 服务器,并注册其本地的插件。主服务器随后便能透明地将工具执行请求委派给此节点。这套机制非常适合以下场景:

  • 重型计算任务: 将 GPU 或 CPU 密集型任务(如视频生成、大规模数据处理)卸载到专用的高性能机器上。
  • 访问特定资源: 运行需要访问特定硬件或网络资源的插件(例如,内网的文件服务器、特殊的硬件设备)。
  • 可扩展性: 创建一个由多个节点组成的网络,以分散工作负载,增强整个 VCP 系统的容量。

2. 工作原理

  1. 初始化: 服务器启动,加载其 Plugin 目录下的所有有效本地插件。
  2. 连接: 使用 config.env 中指定的 URL 和密钥,与主 VCP 服务器建立 WebSocket 连接。
  3. 注册: 连接成功后,它会将其可用的插件清单发送给主服务器。主服务器会将这些插件注册为“云端插件”。
  4. 执行: 监听来自主服务器的 execute_tool 命令。当收到请求时,它会使用提供的参数执行相应的本地插件。
  5. 返回结果: 执行完毕后,通过 WebSocket 连接将结果(或错误信息)发回给主服务器。
  6. 自动重连: 如果与主服务器的连接断开,它将采用指数退避策略自动尝试重新连接。

3. 安装与设置

前提条件

  • Node.js (推荐 v16 或更高版本)
  • 一个正在运行的主 VCP 服务器实例。

步骤

  1. 安装依赖:

    npm install
  2. 配置节点:

    • 通过复制 config.env.example (如果提供) 或手动创建一个名为 config.env 的新文件。
    • 填写必要的变量:
      • Main_Server_URL: 您的主 VCP 服务器的 WebSocket URL (例如, ws://192.168.1.100:8088)。
      • VCP_Key: 必须与您主服务器 config.env 中的 VCP_Key 完全一致的密钥。
      • ServerName: 为此节点起一个易于识别的描述性名称 (例如, GPU节点-1号)。
      • DebugMode: 设置为 True 以在控制台获得更详细的日志。
  3. 添加插件:

    • 在此项目文件夹内创建一个名为 Plugin 的目录。
    • 将您希望在此节点上运行的 VCP 插件文件夹(例如 SciCalculator)完整地复制到这个 Plugin 目录中。
    • 重要提示: 目前,分布式节点仅支持 synchronous (同步) 类型的、且通信协议为 stdio 的插件。
  4. 启动服务器:

    node VCPDistributedServer.js

启动后,您应该能在控制台看到节点的连接状态和插件注册日志。您也可以在主 VCP 服务器的控制台中查看到此节点的连接和工具注册信息。

About

VCP分布式微服务器,让你的任何设备都成为VCPToolBox的算力中心吧!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published