
如何用 ShardingSphere-MCP 完成读写分离规则的规划、审查与执行工作流【免费下载链接】shardingsphereEmpowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases.项目地址: https://gitcode.com/GitHub_Trending/sh/shardingsphere本文的任务是在 AI 应用中通过自然语言借助 ShardingSphere-MCP 的读写分离功能插件为一个 ShardingSphere-Proxy 逻辑库完成读写分离规则的规划、审查、执行与校验全程只生成可读写的 DistSQL 变更。适用前提runtimeDatabases配置指向的必须是 ShardingSphere-Proxy 逻辑库写存储单元和读存储单元必须已经存在于 Proxy 中——该插件只生成读写分离 DistSQL不会创建或修复存储单元也不生成物理 DDL、索引 DDL、迁移、回填或物理元数据探测见 读写分离功能说明。准备条件规划规则前用户需要能明确提供逻辑库名、规则名、写存储单元、读存储单元以及负载均衡算法意图。以下示例统一使用文档中的取值逻辑库logic_db、规则名rw_ds、写存储单元write_ds、读存储单元read_ds_0, read_ds_1。MCP Server 侧按 快速开始 准备环境JAVA_HOME或PATH中可用的 JDK 21一个可通过 JDBC 访问的 ShardingSphere-Proxy 逻辑库一个支持 MCP 的 AI 应用、IDE 插件或 Agent 平台。在仓库根目录构建发行包./mvnw -pl distribution/mcp -am -DskipTests package进入发行包目录${version}需替换为实际构建出的版本例如5.5.4-SNAPSHOTcd distribution/mcp/target/apache-shardingsphere-mcp-${version}预期结果当前目录包含bin/、conf/、lib/。编辑conf/mcp-http.yaml把runtimeDatabases指向已有 Proxy 逻辑库runtimeDatabases: logic_db: jdbcUrl: jdbc:mysql://127.0.0.1:3307/logic_db username: root password: driverClassName: com.mysql.cj.jdbc.Driverlogic_db、127.0.0.1、3307、root和空密码都是文档示例值需按实际连接信息替换MCP Server 会从jdbcUrl解析数据库类型。如果目标数据库驱动没有随发行包提供启动前把对应 JDBC 驱动 jar 放入plugins/。启动 HTTP MCP ServerUnix-like 系统bin/start.sh logs/mcp-http.log 21 Windows 下使用start ShardingSphere MCP cmd /c bin\start.bat logs\mcp-http.log 21默认端点是http://127.0.0.1:18088/mcp在 AI 应用中按 客户端集成 的方式配置该地址。启动后用“查看logic_db中有哪些表”这类最小任务确认 MCP Server 已能访问目标逻辑库也可以读取shardingsphere://runtime资源或调用database_gateway_validate_runtime_database验证运行时数据库就绪见 部署说明。规划规则用自然语言生成可审查的计划在 AI 应用中直接描述需求例如文档给出的示例查看logic_db的读写分离规则和负载均衡算法插件。规划名为rw_ds的读写分离规则写存储单元是write_ds读存储单元是read_ds_0, read_ds_1。规划工具返回的响应面向模型包含以下字段也是审查计划时的事实来源见 规则变更流程plan_id把已生成计划连接到 workflow resource、预览、执行和校验工具summary模型可读状态摘要说明计划需要补充信息、可以预览或已经失败algorithm_recommendations根据 Proxy 可见插件目录或用户显式输入选择的候选算法property_requirements所选算法的必填或可选属性缺少必填属性时 workflow 会保持在澄清状态而不是生成不安全产物resources_to_read和next_actions继续 workflow 所需的资源与工具导航提示distsql_artifacts当前功能插件边界内生成的可审查规则 DistSQL。执行 workflow 前确认返回的plan_id、resources_to_read、next_actions和distsql_artifacts执行前应先通过 workflow resource 审查已持久化的计划。Client 应优先遵循这些字段而不是自行猜测替代调用或向用户询问 payload 中已经包含的信息。审查计划确认语句类型、存储单元与算法属性按 读写分离功能说明 的审查重点逐项核对确认规则计划使用的是CREATE、ALTER或DROP READWRITE_SPLITTING RULE语句。确认状态计划使用ALTER READWRITE_SPLITTING RULE ... ENABLE或DISABLE。确认存储单元名是已有逻辑存储单元——workflow 不会创建它们。选择负载均衡算法前审查algorithm_recommendations。核对算法属性要求RANDOM和ROUND_ROBIN不需要负载均衡属性WEIGHT需要为每个读存储单元提供一个权重属性。规则变更的通用审查流程需求确认、预览、执行、校验同样适用于本场景完整说明见 规则变更流程。预览变更先不修改运行时状态审查通过后要求先预览而不执行例如“先预览不要执行。”。预览只返回变更内容和影响范围不修改运行时状态适合在确认待执行语句、变更产物和副作用后再决定是否执行。如果计划中使用了敏感值占位符例如{secret_ref: placeholder://secret-value-1}预览响应只会显示中性占位符或******。注意若工作流仍包含敏感值占位符自动执行会在产生副作用前停止并返回secret_reference_manual_execution_required——此时应改用人工执行包由执行人员在 MCP 和 AI 应用之外的受控环境中替换真实值后再执行。执行变更自动执行或导出人工执行包用户说法用户会得到什么适用场景“先预览不要执行。”只返回变更内容和影响范围先确认待执行语句、变更产物和副作用“确认执行刚才的计划。”执行已经预览并确认的变更用户已完成审查“导出人工执行包。”返回可由运维人员审查和执行的语句需要审批、变更窗口或受控环境执行三种说法对应同一份已规划的plan_id选择哪一条取决于变更是否需要人工审批有副作用的变更必须经过确认后才执行。校验结果与状态变更执行后按功能插件返回的规则状态或 workflow 执行结果校验例如文档示例中的状态变更任务禁用规则rw_ds中的读存储单元read_ds_1然后校验状态。这类任务走的是状态计划ALTER READWRITE_SPLITTING RULE ... DISABLE审查与执行方式与规则计划一致。summary与next_actions字段会说明当前可以继续的操作。能力边界与限制仅支持 ShardingSphere-Proxy 逻辑库数据库直连模式不适用读写分离功能插件。插件不创建或修复存储单元不探测物理数据源元数据。对象名内容不能包含反引号、NUL、回车或换行。用户看到的是 Proxy 暴露的逻辑元数据不等同于每个底层物理库的完整元数据。排障入口如果 AI 应用无法连接或看不到逻辑库或规划、执行失败查看 常见问题需要直接调试 MCP 协议请求时见 自研集成附录。运行时状态与基础诊断信息可通过shardingsphere://runtime资源查看日志位于logs/mcp.log。【免费下载链接】shardingsphereEmpowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases.项目地址: https://gitcode.com/GitHub_Trending/sh/shardingsphere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考