01
核心业务 时代营销云是一套面向地产营销团队的业务系统。微信小程序和公众号负责用户触达与项目浏览,PC 管理后台负责项目、活动、客户、经纪人、内容和运营配置,数据面板负责活动、到访、访客、物料、渠道和排行分析。归档中的代码不是一个单体应用,而是 api-times、pc-api、sd-data-panel 以及 ideamake-modules 组成的交付单元。
私有化交付要解决的是“这套系统在客户环境如何稳定运行并且能够验收”。因此需要同时说明服务职责、配置注入、数据库和缓存、消息协作、镜像发布、Ingress 路由、健康探针、日志和回滚。代码目录可以证明接口与部署结构,容量、SLA、客户数量和当前生产状态则必须由目标环境另行验证。
01 小程序与用户触达api-times 提供授权登录、手机号绑定、公众号授权、楼盘与项目浏览、活动报名、访客和分享等入口,并连接微信支付、短信与对象存储。
02 管理后台与营销运营pc-api 面向管理员、角色、权限、项目、品牌、文章、知识库、活动、优惠券、抽奖、报名、顾问、客户和报表配置,使用 Nacos 和动态数据源适配目标环境。
03 数据面板与经营分析sd-data-panel 汇总活动概览、趋势、排行、到访来源、访客画像、项目 / 品牌 / 物料 / 渠道排行,提供 Redis 统计、定时汇总和 Excel 导出。
04 公共模块与运行依赖ideamake-modules 提供订阅消息、品牌和公共基础能力;MySQL、Redis、RabbitMQ、Kafka、OSS、邮件和第三方平台由交付环境提供并单独验收。 02
技术栈
业务服务 Java 8 Spring Boot MyBatis-Plus Maven
接入与数据 微信小程序 / 公众号 MySQL Redis OSS 短信
异步协作 RabbitMQ Kafka WebSocket @Async
后台与分析 Nacos EasyExcel Spring Mail XXL-JOB Prometheus
运行与交付 Docker Kubernetes ConfigMap Ingress 私有镜像仓库 03
系统架构与部署 四个交付单元与流量边界 从用户触达到经营分析
小程序 API、PC 管理后台和数据面板分别部署,公共 Maven 模块在构建期复用;配置中心、数据组件和 Ingress 属于目标环境的运行边界。 小程序 API api-times / Kubernetes Deployment / 8092 生产 Deployment 为 sd-api-prod-gray,配置挂载到 /config;readiness 与 liveness 通过 /api/health/ready、/api/health/live 判断服务是否可接流量。
PC 管理后台 API pc-api / Kubernetes Deployment / 8380 Deployment 名称为 backend,Service 将 80 转发到 8380,Ingress 以 /market-backend/ 暴露 sapi.shidaijia.com;Nacos 配置由 ConfigMap 注入。
数据面板 sd-data-panel / Kubernetes Deployment / 8083 Deployment 名称为 data-panel,context path 为 /data-panel/,探针使用 /data-panel/healthy?type=readinessProbe;镜像由 Jib 构建。
公共模块 Maven modules / Java 8 / Spring Boot 2.1.4 订阅消息、品牌和公共基础能力在构建期被业务服务依赖;它们不是单独接收公网流量的服务。
配置与基础设施 Nacos / ConfigMap / MySQL / Redis / MQ / OSS 目标环境提供连接地址、账号、密钥、消息和存储能力;这些值不写入页面,也不假设归档配置可以直接用于生产。
镜像与入口 Docker / Kubernetes / Ingress / 私有 Registry api-times、pc-api 和 data-panel 使用各自镜像与发布边界;镜像可按环境晋级,入口、证书和域名由客户集群验收。
04
核心业务链路 用户从微信入口进入活动并完成交易 1 微信授权2 用户身份3 项目 / 活动4 报名5 支付下单6 渠道回调7 业务事件api-times 将静默登录、手机号绑定、项目浏览、活动报名和支付接口放在同一条业务链路中。支付中心负责渠道差异和流水记录,库存预减与活动处理通过 Redis、消息和业务记录协作;回调成功后再由业务事实推动后续通知和统计。验收需要覆盖授权、重复报名、库存边界、支付回调和失败重试。
运营人员在后台配置项目并查看数据 1 PC 后台2 项目 / 客户 / 活动配置3 业务事实4 统计汇总5 数据面板 / 导出pc-api 收敛管理员、角色、权限和项目运营配置,业务服务产生的活动、访客、物料和渠道事实进入统计与汇总链路,sd-data-panel 负责查询、排行和 Excel 导出。验收要把权限范围、时间口径、汇总延迟和导出内容一起核对。
私有环境发布后接入流量 1 镜像2 ConfigMap / Nacos3 Deployment4 探针5 Service / Ingress6 业务回读发布先确认镜像版本和配置来源,再检查容器启动、依赖连接和健康探针。探针通过后才允许 Service 和 Ingress 接流量,随后用真实业务路径回读,而不是只用 HTTP 200 判断交付完成。异常时按镜像、配置、数据库迁移、域名和业务数据分别回滚或修复。
05
关键机制与取舍 01 服务边界:按入口和事实拆分
约束 小程序请求、后台运营和分析查询的流量模式不同,全部塞进一个部署单元会让权限、发布和故障定位互相影响。
做法 api-times 负责移动端和微信生态入口,pc-api 负责管理运营,sd-data-panel 负责统计查询;公共模块通过 Maven 依赖共享,服务之间用明确的接口、事件和数据边界连接。
效果 可以分别发布和扩容,登录或报表问题不会自动等同于全部业务不可用,交付验收也能按服务单元拆开。 02 环境配置:构建与运行分离
约束 客户环境的数据库、缓存、消息、对象存储和第三方凭据不同,直接把配置打进镜像会阻断晋级并扩大泄露面。
做法 镜像只包含应用和依赖,Nacos、ConfigMap 和挂载目录负责注入环境配置;交付清单记录配置项、来源、变更方式和回滚版本,敏感值只在目标环境管理。
效果 同一应用制品可以进入不同环境,配置变更有独立审计边界,归档材料不会暴露真实密钥。 03 支付协作:回调确认事实
约束 支付请求、库存预减和渠道回调不在同一个事务里,网络重试或重复回调可能导致重复处理或提前释放库存。
做法 订单和支付流水使用业务标识关联,Redis 参与库存预减,RabbitMQ / Kafka 承担异步通知;回调先校验渠道事实和幂等记录,再发布支付成功事件,订阅方按业务标识处理。
效果 支付状态、库存状态和通知状态可以分别解释,重复回调不会自动创建第二次业务处理;目标环境仍需按渠道沙箱或生产规则回归。 04 数据面板:事实与查询模型分离
约束 活动和访客明细持续增长,报表请求如果每次都扫描业务表,会把运营查询和交易写入耦合起来。
做法 业务事实与埋点进入统计适配和定时汇总,Redis 保存统计结果,data-panel 按活动、访客、项目、品牌、物料和渠道提供查询与导出;汇总任务与页面查询分别记录时间口径。
效果 报表可以围绕稳定的查询模型组织,运营能够看到趋势和排行;数据延迟、重算和导出完整性仍属于交付验收项。 05 探针与验收:运行就绪不等于业务完成
约束 进程启动且探针通过,只说明应用达到接流量的基础条件,不能证明微信授权、权限、支付或报表口径正确。
做法 先验证端口、配置、依赖和 readiness / liveness,再执行登录、项目、活动、报名、支付回调、后台权限、统计和导出回读;每个服务保存镜像、配置和业务验证记录。
效果 发布故障可以快速定位在运行层还是业务层,私有化交付从“容器启动”提升到“业务闭环可验收”。 06
私有化交付 交付以目标环境为准:代码归档负责说明模块和部署契约,客户环境负责提供依赖和真实配置,业务验收负责确认链路可用。每个服务都绑定镜像版本、配置来源、探针结果和关键流程回读。
1 资产盘点 核对源码模块、POM、Docker / Kubernetes 清单和外部依赖2 环境准备 建立命名空间、镜像拉取权限、配置来源、数据库与消息资源3 服务发布 按 API、后台、数据面板分别部署并检查容器、日志与探针4 入口接入 配置 Service、Ingress、域名、证书和前端访问路径5 业务回读 执行授权、项目、活动、报名、支付、权限、统计和导出用例6 交付留档 保存镜像摘要、配置版本、数据库变更、验收记录和回滚入口4 类 验收对象 运行状态、配置与依赖、接口与权限、业务数据与报表分别检查。
3 条 健康路径 api-times 的 ready / live 与 data-panel 的 readinessProbe 路径需与 Service 接流量前的配置一致。
1 份 交付记录 镜像、配置、数据库变更、域名入口和回滚版本放在同一份交付记录中,便于复盘。
不能直接替代验收的证据 容器启动成功 只能证明进程完成启动,不能证明权限、支付回调或报表口径正确。readiness 通过 只能说明达到基础接流量条件,仍需执行真实业务路径和外部依赖回读。源码能编译 不能证明客户配置、数据库迁移、域名、证书和消息组件已准备好。归档中存在生产 YAML 只能说明曾经设计过部署结构,不能推断当前集群、容量或线上状态。07
阶段成果 形成一套可交付的时代营销云私有化项目地图,覆盖业务服务、公共模块、数据域和运行依赖。 将镜像、配置、集群资源、域名入口、健康检查、业务回读和回滚分成可执行的验收对象。 沉淀从微信触达、活动与支付到数据分析的排障路径,同时明确归档代码不能替代目标环境容量和生产状态证明。