构建微服务生态系统:股票经纪模拟器(My Broker B3)
发布: (2026年3月14日 GMT+8 09:46)
3 分钟阅读
原文: Dev.to
Source: Dev.to
大家好!
我将开启一系列文章,记录 My Broker B3 的开发过程。这个个人项目运用了高级软件工程概念、分布式系统以及消息传递技术,模拟真实的证券经纪业务。主要目标是构建一个能够应对 数据一致性、低延迟 与 异步通信 等挑战的生态系统,并集成一个简化的 撮合引擎。
系统架构
项目采用微服务方式,使用混合技术栈以发挥各生态系统的优势:
- 核心后端 (Java/Spring Boot 3) – 提供订单 (
broker-order-api)、钱包 (broker-wallet-api) 与资产管理 (broker-asset-api) API。 - 行情数据 (Python) – 一个集成器 (
broker-market-data-api),通过定时任务管理行情数据的采集。 - 撮合引擎 (Java) – 一个 B3 模拟器 (
b3-matching-engine-api),处理经纪商发送的订单执行。
数据流与技术
混合通信策略确保了弹性与可扩展性。
同步 (REST)
用于关键的实时校验,例如在允许发送订单前验证钱包余额。
异步 (事件驱动)
- Apache Kafka – 充当内部事件总线,分发行情报价和资产相关事件。
- RabbitMQ – 通过专用队列管理经纪商与 B3 模拟器之间的通信。
持久化与缓存
每个服务使用最适合其用途的数据存储。
| 技术 | 用例 |
|---|---|
| MySQL / PostgreSQL | 事务性数据、订单以及钱包历史记录。 |
| MongoDB | 市场报价历史(时序数据),位于 Market Data API 中。 |
| Redis | “热”缓存,用于市场价格,以确保超高速查询。 |
技术示意图

接下来有什么?
这篇文章只是 启动篇。后续文章将详细介绍:
- 基础设施 – 在 AWS(免费层) 上部署所有资源。
- 消息系统 – 深入探讨 Kafka 与 RabbitMQ 的配置。
- 技术挑战 – 处理 最终一致性 与撮合引擎的处理逻辑。
欢迎在评论区留下您的反馈或问题!