README.md 13 KB

Shop Recycle - Microservice Platform Helm Chart

📋 概述

这是一个企业级微服务平台的Helm Chart实现,采用Umbrella Chart + 通用模板库的混合架构。用于管理Shop Recycle项目的34个Java Spring Cloud微服务的统一部署、配置管理和多环境部署。

架构版本: 1.0.0
项目名称: Shop Recycle
微服务数量: 34个
部署环境: dev, staging, production
Spring Cloud框架: 标准化的application.properties配置
端口范围: 1201-1239


🎯 主要特性

Umbrella Chart架构 - 统一部署管理34个微服务
模板代码复用 - 通用base chart,消除重复代码
灵活的服务启用/禁用 - 可按需启用或禁用任意微服务
多环境配置管理 - 开发、测试、生产环境差异化配置
全局配置共享 - 支持跨服务的全局配置
Spring Cloud原生支持 - 标准化的应用属性配置
生产就绪 - 包含health check、资源限制、副本控制
配置精简化 - 应用属性在模板中固定,避免重复


📁 项目结构

microservice-helm/
├── Chart.yaml                          # Umbrella Chart定义(34个依赖)
├── values.yaml                         # 全局配置(各服务默认值)
├── README.md                           # 本文档
├── templates/                          # 根级templates(通常为空)
│   ├── configmap.yaml
│   ├── deployment.yaml
│   └── service.yaml
├── charts/                             # 子Chart目录(34个微服务+base)
│   ├── base/                           # 🔷 通用模板库
│   │   ├── Chart.yaml
│   │   ├── values.yaml
│   │   └── templates/
│   │       ├── configmap.yaml          # 标准化的Spring Cloud应用属性
│   │       ├── deployment.yaml
│   │       └── service.yaml
│   │
│   ├── 核心业务服务 (9个)
│   │   ├── shop-recycle-payment/       # 支付服务 (1218)
│   │   ├── shop-recycle-store/         # 商店服务 (1208)
│   │   ├── shop-recycle-pis/           # PIS服务 (1209)
│   │   ├── shop-recycle-merchant/      # 商家服务 (1204)
│   │   ├── shop-recycle-account/       # 账户服务 (1223)
│   │   ├── shop-recycle-msg/           # 消息服务 (1217)
│   │   ├── shop-recycle-order-center/  # 订单中心 (1203)
│   │   ├── shop-recycle-wechat/        # 微信服务 (1231)
│   │   └── shop-recycle-order-search/  # 订单查询 (1238)
│   │
│   ├── 数据和基础服务 (8个)
│   │   ├── shop-recycle-data-statistics/    # 数据统计 (1220)
│   │   ├── shop-recycle-platform/           # 平台服务 (1201)
│   │   ├── shop-recycle-sche/               # 调度服务 (1215)
│   │   ├── shop-recycle-dispatcher/         # 分发器 (1236)
│   │   ├── shop-recycle-dealdata-service/   # 数据处理服务 (1235)
│   │   ├── shop-recycle-async-web/          # 异步服务 (1239)
│   │   └── shop-recycle-import-web/         # 导入Web (1221)
│   │
│   ├── 网关拓展服务 (4个)
│   │   ├── shop-recycle-gateway-out/        # 外部网关 (1226)
│   │   ├── shop-recycle-gateway-out-upgrade/# 网关升级 (1237)
│   │   ├── shop-recycle-out-web/            # 外部Web (1224)
│   │   └── shop-recycle-gateway/            # API网关 (1211)
│   │
│   ├── 客户端Web服务 (8个)
│   │   ├── shop-recycle-wechat-web/         # 微信Web (1214)
│   │   ├── shop-recycle-payment-web/        # 支付Web (1219)
│   │   ├── shop-recycle-store-wechat-web/   # 店铺微信Web (1207)
│   │   ├── shop-recycle-customer-wechat-web/# 客户微信Web (1227)
│   │   ├── shop-recycle-merchant-wechat-web/# 商家微信Web (1206)
│   │   ├── shop-recycle-oss-web/            # OSS Web (1212)
│   │   ├── shop-recycle-login-center/       # 登录中心 (1210)
│   │   └── shop-recycle-vs-web/             # VS Web (1233)
│   │
│   └── 管理后台服务 (6个)
│       ├── shop-recycle-platform-pc-web/    # 平台PC Web (1202)
│       ├── shop-recycle-store-pc-web/       # 店铺PC Web (1222)
│       ├── shop-recycle-marketer-pc-web/    # 营销PC Web (1232)
│       ├── shop-recycle-erp-pc-web/         # ERP PC Web (1228)
│       ├── shop-recycle-merchant-pc-web/    # 商家PC Web (1205)
│       └── shop-recycle-agent-pc-web/       # 代理PC Web (1225)
│
└── environments/                       # 环境特定配置
    ├── dev-values.yaml                 # 开发环境(DEBUG日志、单副本)
    ├── staging-values.yaml             # 预发布环境(INFO日志、双副本)
    └── prod-values.yaml                # 生产环境(WARN日志、三副本、高资源)

🚀 快速开始

前置条件

  • Kubernetes集群 1.16+
  • Helm 3.0+
  • kubectl 已配置并能访问集群

安装

1️⃣ 部署全部微服务(默认配置)

helm install shop-recycle ./

2️⃣ 部署特定环境

# 开发环境
helm install shop-recycle ./ \
  -f environments/dev-values.yaml

# 预发布环境
helm install shop-recycle ./ \
  -f environments/staging-values.yaml

# 生产环境
helm install shop-recycle ./ \
  -f environments/prod-values.yaml

3️⃣ 选择性部署微服务

# 仅部署核心后端服务
helm install shop-recycle ./ \
  --set shop-recycle-payment.enabled=true \
  --set shop-recycle-store.enabled=true \
  --set shop-recycle-merchant.enabled=true \
  --set shop-recycle-gateway.enabled=true

# 禁用特定Web服务
helm install shop-recycle ./ \
  --set shop-recycle-marketer-pc-web.enabled=false \
  --set shop-recycle-erp-pc-web.enabled=false

4️⃣ 自定义镜像仓库和版本

helm install shop-recycle ./ \
  --set global.image.registry=your-registry \
  --set shop-recycle-payment.image.tag=v2.0.0

5️⃣ 验证安装

# 查看Release状态
helm status shop-recycle

# 查看所有部署的资源
kubectl get all -l platform=microservice-platform

# 查看所有Pod
kubectl get pods -l project=shop-recycle

# 查看Service和端口
kubectl get svc

📊 服务详细列表

核心业务服务 (9个)

服务名称 端口 说明
shop-recycle-payment 1218 支付服务
shop-recycle-store 1208 商店服务
shop-recycle-pis 1209 PIS系统
shop-recycle-merchant 1204 商家管理
shop-recycle-account 1223 账户管理
shop-recycle-msg 1217 消息服务
shop-recycle-order-center 1203 订单中心
shop-recycle-wechat 1231 微信集成
shop-recycle-order-search 1238 订单查询

数据和基础服务 (8个)

服务名称 端口 说明
shop-recycle-platform 1201 平台核心
shop-recycle-data-statistics 1220 数据统计
shop-recycle-sche 1215 调度服务
shop-recycle-dispatcher 1236 分发服务
shop-recycle-dealdata-service 1235 数据处理
shop-recycle-async-web 1239 异步处理
shop-recycle-import-web 1221 数据导入

网关拓展服务 (4个)

服务名称 端口 说明
shop-recycle-gateway-out 1226 外部网关
shop-recycle-gateway-out-upgrade 1237 网关升级
shop-recycle-out-web 1224 外部Web
shop-recycle-gateway 1211 API网关

客户端Web服务 (8个)

服务名称 端口 说明
shop-recycle-wechat-web 1214 微信Web
shop-recycle-payment-web 1219 支付Web
shop-recycle-store-wechat-web 1207 店铺微信Web
shop-recycle-customer-wechat-web 1227 客户微信Web
shop-recycle-merchant-wechat-web 1206 商家微信Web
shop-recycle-oss-web 1212 文件管理
shop-recycle-login-center 1210 登录中心
shop-recycle-vs-web 1233 VS页面

管理后台服务 (6个)

服务名称 端口 说明
shop-recycle-platform-pc-web 1202 平台PC Web
shop-recycle-store-pc-web 1222 店铺PC Web
shop-recycle-marketer-pc-web 1232 营销管理
shop-recycle-erp-pc-web 1228 ERP系统
shop-recycle-merchant-pc-web 1205 商家后台
shop-recycle-agent-pc-web 1225 代理后台

🌍 环境配置

开发环境 (dev-values.yaml)

global:
  labels:
    environment: development

shop-recycle-payment:
  enabled: true
  app:
    replicaCount: 1
  image:
    tag: dev-latest
  config:
    yml:
      logging:
        level:
          root: DEBUG

预发布环境 (staging-values.yaml)

global:
  labels:
    environment: staging

shop-recycle-payment:
  enabled: true
  app:
    replicaCount: 2
  image:
    tag: staging-latest

生产环境 (prod-values.yaml)

global:
  labels:
    environment: production

shop-recycle-payment:
  enabled: true
  app:
    replicaCount: 3
  image:
    tag: "1.0.0"
  resources:
    requests:
      cpu: 500m
      memory: 512Mi
    limits:
      cpu: 1000m
      memory: 1024Mi

💡 使用示例

示例1:基础部署

helm install shop-recycle ./

示例2:多环境部署脚本

#!/bin/bash

# 开发环境
helm install shop-recycle-dev ./ \
  --namespace dev \
  --create-namespace \
  -f environments/dev-values.yaml

# 预发布环境
helm install shop-recycle-staging ./ \
  --namespace staging \
  --create-namespace \
  -f environments/staging-values.yaml

# 生产环境
helm install shop-recycle-prod ./ \
  --namespace prod \
  --create-namespace \
  -f environments/prod-values.yaml

示例3:升级应用版本

helm upgrade shop-recycle ./ \
  --set shop-recycle-payment.image.tag=v2.0.0 \
  --set shop-recycle-store.image.tag=v2.0.0

示例4:查看部署状态

# 查看所有Pod
kubectl get pods -l project=shop-recycle -o wide

# 查看特定服务日志
kubectl logs -l app=shop-recycle-payment -f

# 验证服务健康
curl -s localhost:1218/actuator/health | jq .

🔍 常见操作

调试和测试

# 验证Chart语法
helm lint ./

# 渲染模板
helm template shop-recycle ./

# 查看特定环境的配置
helm template shop-recycle ./ -f environments/prod-values.yaml

端口转发

# 转发payment服务
kubectl port-forward svc/shop-recycle-payment 1218:1218

# 转发gateway服务
kubectl port-forward svc/shop-recycle-gateway 1211:1211

# 测试
curl http://localhost:1218/actuator/health

日志查看

# 查看所有服务日志
kubectl logs -l project=shop-recycle -f

# 查看特定服务日志
kubectl logs -l app=shop-recycle-payment -f

# 查看最近的日志
kubectl logs -l app=shop-recycle-payment --tail=50

删除Release

helm uninstall shop-recycle

🏗️ 架构说明

Umbrella Chart设计

Umbrella Chart 管理34个子Chart,提供:

  1. 统一的部署管理
  2. 全局配置共享
  3. 灵活的服务启用/禁用
  4. 环境隔离配置

Spring Cloud配置标准化

ConfigMap模板自动生成:

spring.application.name=<service-name>
spring.protocol.name=spring
server.port=<service-port>

这保证了所有微服务的配置一致性和可维护性。


⚙️ 高级配置

副本自动扩展

kubectl autoscale deployment shop-recycle-payment \
  --min=2 --max=10 --cpu-percent=80

资源限制

详见environment配置文件。


🔐 安全最佳实践

敏感信息管理

kubectl create secret generic db-credentials \
  --from-literal=username=dbuser \
  --from-literal=password=dbpass

健康检查

所有服务都配置了liveness和readiness probe,使用/actuator/health端点。


📚 相关资源


📝 更新日志

v1.0.0 (2026-01-15)

  • ✅ 初始化Umbrella Chart架构
  • ✅ 创建base通用模板库
  • ✅ 实现34个shop-recycle微服务Chart
  • ✅ 使用正确的端口号(1201-1239)
  • ✅ 标准化Spring Cloud应用属性配置
  • ✅ 创建多环境配置(dev、staging、prod)
  • ✅ 完整的文档和使用示例

❓ 常见问题

Q: 如何修改服务端口?
A: 端口号固定在service.targetPort中,ConfigMap模板会自动生成正确的server.port值。

Q: 是否可以修改应用名称?
A: 应用名称固定为service name,在configmap模板中自动设置。

Q: 如何只部署部分服务?
A: 使用--set <service-name>.enabled=false禁用不需要的服务。


最后更新: 2026-01-15
维护者: DevOps Team
项目: Shop Recycle Microservice Platform