谷粒商城学习笔记(2)-- 环境搭建项目结构创建:用 TaoToken 统一 Key 打通 Docker 微服务本地联调

发布时间:2026/10/3 6:34:20
谷粒商城学习笔记(2)-- 环境搭建项目结构创建:用 TaoToken 统一 Key 打通 Docker 微服务本地联调 1. 谷粒商城本地环境搭建Docker 编排 MySQL/Redis/Nacos 与多模块结构创建谷粒商城是一套基于 Spring Cloud Alibaba 的电商微服务实战项目包含商品、仓储、订单、优惠券、用户五大核心服务适合想系统学习微服务拆分、注册发现、远程调用与分布式事务的 Java 开发者。这套项目从零搭建本地开发环境时最容易卡住的不是业务代码而是环境链路Docker 里的 MySQL/Redis/Nacos 是否正常、父工程与多模块结构是否规范、各服务能否成功注册到 Nacos。我这次把环境搭建和项目结构创建重新梳理了一遍同时用 TaoToken 的统一 Key 接入 AI 编码工具让写 pom、写配置、排查报错这几件事效率高不少。下面按可跟做的顺序展开每一步都给出可复制的配置和验证动作。1.1 本地环境链路与网络互通确认在动手之前先把本地开发机和虚拟机的网络关系确认清楚。谷粒商城的教程通常把 Docker 跑在虚拟机里本地 IDEA 通过 IP 访问虚拟机上的 MySQL、Redis、Nacos。所以第一步是确认本地和虚拟机互相 ping 通。假设虚拟机 IP 是192.168.174.128本地 IP 是192.168.31.14。在本地命令行执行ping 192.168.174.128在虚拟机里执行ping 192.168.31.14两边都能通说明网络层没问题。如果 ping 不通先检查虚拟机网络模式NAT 或桥接、防火墙状态而不是急着装 Docker。这一步看起来简单但后面所有连接失败几乎都能追溯到网络没通。确认网络后在虚拟机上安装 Docker。CentOS 下先卸载旧版本sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine安装依赖并设置仓库sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo安装 Docker 并启动sudo yum install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker配置镜像加速编辑/etc/docker/daemon.jsonsudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://82m9ar63.mirror.aliyuncs.com] } EOF sudo systemctl daemon-reload sudo systemctl restart docker到这里 Docker 环境就绪。接下来用 Docker 编排 MySQL、Redis、Nacos 三个基础组件。相比一条条docker run我更推荐用docker-compose.yml统一管理启动、停止、查看日志都方便。2. TaoToken 统一 Key 接入 AI 编码工具的前置准备环境搭建过程中会反复写配置文件、写 pom、排查启动报错这些场景用 AI 编码工具辅助能省很多时间。但多个工具各自配置 Key 很麻烦TaoToken 的思路是用一个统一 Key 打通模型对话、编码工具和 API 调用。TaoToken 是一个大模型 API 聚合与统一接入平台能做什么把不同模型的调用收敛到一个 Base URL 和一个 API Key 下适合需要在 Claude Code、Cline、Codex 等多种编码工具之间切换的开发者。适合谁正在做微服务项目、需要频繁写配置和排障、又不想每个工具单独申请 Key 的人。前置准备分三步。第一步注册并登录 TaoToken 控制台地址是 https://taotoken.net/api 进入后找到 API Keys 页面创建一个 Key。第二步确认你要接入的工具类型如果是 Claude Code 这类命令行编码工具走 Anthropic 兼容接口如果是 Cline 这类 VS Code 插件走 OpenAI 兼容接口。第三步记录三个核心信息Base URL、API Key、Model ID。这三个信息在后面的配置里会反复用到。这里要强调一点TaoToken 是正规的 API 接入服务不是所谓的中转配置时直接用它提供的官方地址即可。控制台里能看到模型列表和用量统计方便你确认调用是否正常。对于长期做编码和 Agent 任务的场景可以关注 Coding Plan它更适合高频调用如果只是偶尔验证模型效果用模型对话页面就够了。接入文档在 https://taotoken.net/api 里有详细说明配置前建议先扫一眼。3. 可复制配置docker-compose 编排与 Maven 多模块 pom3.1 docker-compose.yml 编排 MySQL/Redis/Nacos在虚拟机/mydata目录下创建docker-compose.ymlversion: 3.8 services: mysql: image: mysql:5.7 container_name: mysql ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: root volumes: - /mydata/mysql/log:/var/log/mysql - /mydata/mysql/data:/var/lib/mysql - /mydata/mysql/conf:/etc/mysql restart: always redis: image: redis container_name: redis ports: - 6379:6379 volumes: - /mydata/redis/data:/data - /mydata/redis/conf/redis.conf:/etc/redis/redis.conf command: redis-server /etc/redis/redis.conf restart: always nacos: image: nacos/nacos-server:1.1.4 container_name: nacos ports: - 8848:8848 environment: MODE: standalone restart: always启动前先创建目录mkdir -p /mydata/mysql/log /mydata/mysql/data /mydata/mysql/conf mkdir -p /mydata/redis/data /mydata/redis/conf touch /mydata/redis/conf/redis.confMySQL 配置文件/mydata/mysql/conf/my.cnf[client] default-character-setutf8 [mysql] default-character-setutf8 [mysqld] init_connectSET collation_connection utf8_unicode_ci init_connectSET NAMES utf8 character-set-serverutf8 collation-serverutf8_unicode_ci skip-character-set-client-handshake skip-name-resolve启动docker-compose up -d docker-compose ps3.2 Maven settings.xml 与父工程 pomMaven 的settings.xml里配置阿里云镜像和 JDK 1.8mirrors mirror idnexus-aliyun/id mirrorOfcentral/mirrorOf nameNexus aliyun/name urlhttp://maven.aliyun.com/nexus/content/groups/public/url /mirror /mirrors profiles profile idjdk-1.8/id activation activeByDefaulttrue/activeByDefault jdk1.8/jdk /activation properties maven.compiler.source1.8/maven.compiler.source maven.compiler.target1.8/maven.compiler.target maven.compiler.compilerVersion1.8/maven.compiler.compilerVersion /properties /profile /profiles父工程pom.xml的 modules 结构modules modulegulimall-coupon/module modulegulimall-member/module modulegulimall-order/module modulegulimall-product/module modulegulimall-ware/module modulegulimall-common/module modulerenren-fast/module modulerenren-generator/module /modules每个微服务模块的包名统一为com.atguigu.gulimall.xxx模块名如gulimall-product。公共依赖放到gulimall-common其他模块通过依赖引入。3.3 AI 编码工具 settings 配置以 Claude Code 为例配置文件路径为~/.claude/settings.json写入{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: 你的TaoToken Key, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }如果是 Cline 这类 VS Code 插件在插件设置里填{ cline.apiProvider: openai, cline.openAiBaseUrl: https://taotoken.net/api, cline.openAiApiKey: 你的TaoToken Key, cline.openAiModelId: claude-sonnet-4-20250514 }三件套必须齐全Base URL、Key、Model ID。少任何一个都会报错。4. 验证请求服务注册成功与接口连通4.1 验证 Docker 组件MySQL 连接测试docker exec -it mysql mysql -uroot -proot进入后执行grant all privileges on *.* to root% identified by root with grant option; flush privileges;Redis 连接测试docker exec -it redis redis-cli输入ping返回PONG即正常。Nacos 控制台访问http://192.168.174.128:8848/nacos默认账号密码都是nacos。4.2 验证微服务注册在gulimall-product的application.yml中配置spring: datasource: username: root password: root url: jdbc:mysql://192.168.174.128:3306/gulimall-pms?useUnicodetruecharacterEncodingUTF-8useSSLfalseserverTimezoneAsia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver cloud: nacos: discovery: server-addr: 192.168.174.128:8848 mybatis-plus: mapper-locations: classpath:/mapper/**/*.xml global-config: db-config: id-type: auto server: port: 10000主启动类加注解MapperScan(com.atguigu.gulimall.product.dao) EnableDiscoveryClient SpringBootApplication public class GulimallProductApplication { public static void main(String[] args) { SpringApplication.run(GulimallProductApplication.class, args); } }启动后访问 Nacos 服务列表能看到gulimall-product即注册成功。4.3 验证 AI 工具调用在 Claude Code 里输入一个简单请求比如让它解释MapperScan的作用。如果返回正常内容说明 Base URL、Key、Model ID 三件套配置正确。如果报错对照下一节的排查表。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth5.1 401 报错现象AI 工具返回401 Unauthorized。原因通常是 Key 填错、Key 过期、或者 Base URL 和 Key 不匹配。排查动作去 TaoToken 控制台确认 Key 是否有效检查配置文件里ANTHROPIC_API_KEY或openAiApiKey是否有多余空格。5.2 local proxy failed现象local proxy failed或连接超时。原因通常是 Base URL 写错或者本地网络无法访问。排查动作确认 Base URL 是https://taotoken.net/api不要多加路径。用 curl 测试curl -X POST https://taotoken.net/api/v1/messages \ -H x-api-key: 你的Key \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d {model:claude-sonnet-4-20250514,max_tokens:100,messages:[{role:user,content:hi}]}5.3 reading choices 报错现象error reading choices或响应解析失败。原因通常是 Model ID 填错或者接口协议不匹配用 OpenAI 格式调 Anthropic 接口。排查动作确认 Model ID 在 TaoToken 控制台的模型列表里存在确认工具用的协议和 Base URL 对应。5.4 OAuth 报错现象OAuth相关报错。原因通常是工具走了 OAuth 登录流程而不是 API Key 流程。排查动作在工具设置里切换到 API Key 模式填入 TaoToken 的 Key不要走 OAuth。5.5 服务注册失败现象Nacos 服务列表看不到服务。排查动作确认server-addr是虚拟机 IP 而不是 localhost确认EnableDiscoveryClient注解已加确认 Nacos 容器正常运行。6. 语义一致 CTA接入文档与 Coding Plan环境搭建和项目结构创建完成后下一步就是写业务代码和联调。如果你在配置 AI 编码工具时遇到问题可以直接看接入文档https://taotoken.net/api 里面有各工具的详细配置步骤。需要创建或管理 Key 的话去 API Keys 页面https://taotoken.net/api 。如果只是先验证模型效果用模型对话页面快速试一下https://taotoken.net/api 。长期做编码和 Agent 任务的话Coding Plan 更适合高频调用场景https://taotoken.net/api 。我自己的习惯是环境搭建阶段用模型对话快速查配置写业务代码阶段用 Claude Code 或 Cline 辅助联调排障阶段用 API 直接测试接口。三个场景共用一个 TaoToken Key切换工具时不用重新配置省下来的时间都花在业务逻辑上。