红德州CrazyPoker源码架构与部署/Java微服务+Unity客户端+ZooKeeper集群

房卡联盟2026-08-24685 阅读
约 2,112 字 · 大约 7 分钟

整体技术栈

层级

技术方案

客户端

Unity 2017.4.40c1 + C#(ILRuntime 热更新)

服务端

Java(17 个独立微服务,JAR 包部署)

服务发现

ZooKeeper 3 节点集群

数据库

MySQL 5.6(261 张表)+ MongoDB 副本集(牌局回放)

缓存/消息

Redis + RabbitMQ + ActiveMQ

反向代理

Nginx(5 节点)

运营后台

Vue SPA(OSM 运营系统 + CMS 管理系统)

下载页

Vue SPA(游戏下载与注册引导)

这套系统最突出的特征是服务拆分粒度——不是一个单体 Java 项目,而是按游戏玩法和业务职责拆成了 17 个独立进程,每个都有自己的 JAR 包、端口配置和启动脚本,通过 ZooKeeper 做服务注册与发现。这在同类德扑源码中非常少见,多数还是 PHP 单体或 Node.js 单进程的做法。

01 大厅牌局列表06 德州牌桌对局07 个人中心VIP会员

大厅牌局列表 / 德州牌桌对局界面 / 个人中心与VIP会员


服务端架构

17 个微服务按职责分为三类:

游戏引擎(6 个): 每种玩法一个独立进程,各跑各的 JAR 包——room(德州常规局)、omaha(奥马哈)、rfom(另一种奥马哈变体)、ofha(奥马哈翻牌前全押)、mtt(多桌锦标赛)、aofShortCard / short-card(AOF 和短牌)。每个引擎都通过 proxool.properties 连 MySQL、通过 zk-config.properties 注册到 ZooKeeper、通过 port.properties 暴露 Socket 端口。

业务服务(7 个): login(登录鉴权,端口 8058)、res(资源服务,端口 8056)、web-api(HTTP 接口,端口 5050)、web-message(消息推送)、pay(支付网关)、consumer(消息消费者)、upload-api(文件上传)。

运营服务(4 个): calculator(数据结算)、yunying(运营后台 API)、yunying-job(定时任务调度)以及独立的牌局回放服务。

启动顺序有依赖关系:先起 ZooKeeper 集群(3 节点),再起 MongoDB 副本集(主从仲裁三实例),然后按 login → res → room → 各游戏引擎 → web-api → 业务服务的顺序逐个拉起。

10 服务端文件结构

服务端部署包结构 -- dzpoker目录下17个微服务 + 中间件配置


客户端与玩法

Unity 2017 项目,内部代号 redPoker,3330 个 C# 源文件。采用 ILRuntime 热更新框架,业务逻辑写在 Hotfix 程序集里,可以不发版更新游戏逻辑。资源通过 AssetBundle 管理,分为 UI、Emoji、动效特效、筹码、音效、牌桌皮肤等模块。

支持五种玩法,对应五个游戏实体类:

  • 德州扑克(Texas):常规局 + 快速局,6 档盲注(新手到豪客),每档分快慢两种节奏

  • 奥马哈(Omaha):四张底牌玩法,独立引擎处理

  • AOF(All-in or Fold):翻牌前只能全押或弃牌的快节奏模式

  • 短牌(Short Deck):去掉 2-5 的 36 张牌玩法

  • MTT 锦标赛:多桌同步的淘汰赛制,支持报名、盲注递增、奖池分配

客户端还内置了百人德州(Cowboy 模式)、牌局内红包雨、跑马灯小游戏等营销玩法。互动功能方面,牌桌支持表情、动画特效投掷(导弹爆炸、倒水、点赞等 Spine 骨骼动画)和视频加载(集成 AVProVideo 插件)。

03 组局设置05 数据统计02 个人中心

组局设置(选玩法/盲注/时长) / 数据统计面板 / 个人中心功能入口


俱乐部与联盟体系

这套系统的核心运营模式是俱乐部私局——玩家不是进公共房间打牌,而是加入或创建俱乐部,在俱乐部内开房组局。UI 上有 35 个以上的俱乐部相关界面(创建/加入/成员管理/资金明细/联盟等),代码量占了前端相当大的比例。

俱乐部之上还有联盟(Tribe)层级,多个俱乐部可以组成联盟共享牌局。后台侧栏可以看到完整的管理链路:账号管理 → 俱乐部 → 联盟 → 审批管理,形成了一套从个人到俱乐部到联盟的三级组织架构。

04 俱乐部页面08 俱乐部列表

俱乐部页面 / 俱乐部列表(多级组织)


运营后台

运营后台叫 OSM(Operation System Management),Vue SPA,功能模块超过 60 个。从左侧导航栏可以看到覆盖了平台运营的方方面面:

  • 账号管理: 在线玩家、用户层级、玩家标签、加权数据统计、加权管理

  • 金豆管理: 彩池配置(普通池/奥马哈池/AOF池/短牌池,按盲注级别设子池)、手工充值、代充渠道、营销账户、JPB 仓

  • 推广信息: 渠道推广数据、俱乐部推广统计、平台报表

  • 营销活动: 牌局内红包雨、首充红包、跑马灯小游戏、玩家活动查询

  • 游戏配置: 图片配置、域名切换、维护弹窗、支付页面文案、备份下载

  • 游戏内操作: 广播、解散房间、AT分发、控制发牌、伙牌投诉、一键创建账号

彩池系统比较精细:按盲注级别分子池,每个子池可独立注入资金,皇家同花顺、同花顺、四条各有独立的中奖比例配置。

09 后台彩池管理

OSM运营后台 -- 彩池管理页面(按牌型配置奖池比例)

13 后台数据查询

数据查询面板 -- 金豆分布、中央仓与用户仓实时数据

14 后台在线玩家管理

在线玩家管理 -- 用户层级、标签、加权状态与战绩一览


数据层

三个数据库各管一摊:

  • crazy_poker(MySQL,261 张表):核心业务库,涵盖用户账户、俱乐部、联盟、支付、活动、彩池、房间配置等全部业务数据

  • yunying(MySQL,16 张表):运营后台权限与配置,RBAC 权限模型

  • allin_vest(MySQL,2 张表):iOS 马甲包渠道管理与推广统计

MongoDB 副本集(主 27079 / 从 27080 / 仲裁)存储牌局回放数据,每一手牌的动作序列都写入 MongoDB,运营后台的回放功能从这里读取数据在 Canvas 上重现牌局过程。

11 产品文档目录

产品文档目录 -- GOLDEN POKER 产品PRD、架构框架、接口文档齐全


部署流程

预计 4-6 小时。需要一台 16 核 16G 以上的 Linux 服务器(项目自带 CentOS 虚拟机镜像 12.7G)。

  1. 准备 CentOS 7,创建 work 用户,安装 JDK 8、MySQL 5.6、MongoDB、Redis、RabbitMQ、Nginx

  2. 部署 ZooKeeper 3 节点集群(/home/work/zk/1-3/),逐个启动并验证

  3. 启动 MongoDB 副本集(master + slave + arbiter 三实例)

  4. 导入三个数据库:crazy_poker(261 表)、yunying(16 表)、allin_vest(2 表)

  5. 解压 dzpoker.zip 到 /home/work/dzpoker/,修改各服务的 IP、数据库密码、Redis 密码

  6. 按顺序启动 17 个服务:login → res → room → rfom → omaha → ofha → mtt → web-api → web-message → consumer → calculator → pay → yunying → yunying-job → upload-api → aofShortCard → short-card

  7. 部署前端:yunying-cms(运营后台)、yunying-operationServer(OSM系统)、game-download(下载页)、yunying-replay(牌局回放)各自配置 Nginx server block

  8. 开放端口:8056(资源服)、8058(登录服)、5050(API)

  9. Unity 客户端用 Unity 2017.4.40c1 打开 redPoker 项目,修改 GlobalProto.txt 中的服务器 IP 后构建 APK

12 Android客户端代码

Android客户端代码结构 -- Gradle构建 + 签名证书 + SDK集成


二开评估

评估维度

结论

源码完整性

服务端为编译后 JAR 包(无 Java 源码),客户端 3330 个 C# 文件完整可读,运营后台为编译后 JS

代码规模

大型项目。17 个服务端模块、3192 个部署文件、261 张数据表、客户端 3330 个源文件

二开难度

高。服务端无源码只能改配置不能改逻辑;客户端可改但依赖 Unity 2017 老版本;多服务联调门槛高

架构质量

高于同类。微服务拆分合理、ZooKeeper 服务发现、MongoDB 副本集、完整的 RBAC 权限模型

主要限制

Java 服务端无源码是最大短板;Unity 2017 已停更;ZooKeeper + MongoDB + RabbitMQ 运维成本高

二开方向

换皮(改客户端美术资源和 UI 布局)、调参数(盲注/服务费/彩池比例都在配置文件里)、加渠道(马甲包系统已就绪)

这套系统的定位很清楚——面向海外市场的俱乐部制德扑平台(默认地区选择器里有澳大利亚、日本等),USDT 充提是主力支付通道。架构上是这批源码里最"正规"的:微服务、服务发现、消息队列、副本集、RBAC,一套企业级基础设施齐全。短板在于服务端只有编译产物没有 Java 源码,功能层面只能改配置不能改逻辑,二开空间主要集中在客户端换皮和运营参数调整上。

下载地址

本资源为付费内容,登录后可下载