秒级行情推送系统实战:从触发、采集到入库的端到端架构

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 本文设计了一套秒级实时行情推送系统,涵盖触发、采集、缓冲、入库与推送五层架构,结合动态代理IP、Kafka/Redis缓冲及WebSocket推送,实现金融数据低延迟、高并发处理,适用于股票、数字货币等实时行情场景。

在金融业务中,实时行情推送 是关键能力:用户希望在 秒级 内看到股票、数字货币或大宗商品的价格变化。传统的批量爬取往往延迟较高,无法满足交易和风控的需要。本文将结合 行情业务场景,搭建一个 秒级数据更新与推送系统,并演示端到端架构。


一、系统架构图

         ┌────────────────┐
         │   触发层 (Trigger)│ ← 定时调度/交易所推送事件
         └──────┬─────────┘
                │
         ┌──────▼─────────┐
         │   采集层 (Crawler)│ ← 请求交易所行情API / 爬虫采集
         │ (代理IP + UA    )│
         └──────┬─────────┘
                │
         ┌──────▼─────────┐
         │ 缓冲层 (Buffer)  │ ← Kafka / Redis Stream
         └──────┬─────────┘
                │
         ┌──────▼─────────┐
         │ 入库层 (DB)      │ ← MySQL / Redis 缓存
         └──────┬─────────┘
                │
         ┌──────▼─────────┐
         │ 推送层 (Push)   │ ← WebSocket / 消息队列 → 用户终端
         └────────────────┘

与通用爬虫不同,行情业务的关键在于 低延迟 + 高并发,所以在采集后,数据会先进入缓冲层,再统一推送。

二、模块功能介绍

1. 触发层(Trigger)

  • 来源:定时任务(如每秒触发一次)、交易所 API WebSocket 事件。
  • 功能:保证行情数据在 秒级 被拉取。

2. 采集层(Crawler)

  • 获取 股票/币价 最新行情。
  • 使用 代理IP(爬虫代理) 防止 API 请求被限流或封禁。

3. 缓冲层(Buffer)

  • 使用 Kafka/Redis Stream 暂存行情,防止入库时拥塞。
  • 支持多消费者:一个消费者负责入库,另一个负责推送用户。

4. 入库层(DB)

  • 写入 MySQL(历史行情存储)、Redis(实时缓存)。
  • 支持前端秒级查询和分析。

5. 推送层(Push)

  • 将最新行情 秒级推送 给用户。
  • 技术手段:WebSocket / 消息队列(RabbitMQ)。

三、关键代码详解(行情采集与推送)

下面以 Python + requests + MySQL 为例,采集实时行情(模拟从交易所接口获取 BTC/USDT 最新价格),并写入数据库。

import requests
import pymysql
import time

# ====== 代理配置(亿牛云爬虫代理示例) ======
proxy_host = "proxy.16yun.cn"      # 代理域名
proxy_port = "3100"                # 代理端口
proxy_user = "16YUN"               # 用户名
proxy_pass = "16IP"                # 密码

proxies = {
   
    "http": f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}",
    "https": f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}"
}

# ====== 数据库配置 ======
db = pymysql.connect(
    host="localhost",
    user="root",
    password="123456",
    database="market_db",
    charset="utf8mb4"
)
cursor = db.cursor()

# ====== 采集函数(模拟获取行情API) ======
def fetch_price(symbol="BTCUSDT"):
    url = f"https://api.binance.com/api/v3/ticker/price?symbol={symbol}"
    try:
        resp = requests.get(url, proxies=proxies, timeout=5)
        data = resp.json()
        price = float(data["price"])
        return price
    except Exception as e:
        print("行情获取失败:", e)
    return None

# ====== 数据入库函数 ======
def save_to_db(symbol, price):
    sql = "INSERT INTO market_price (symbol, price, create_time) VALUES (%s, %s, NOW())"
    try:
        cursor.execute(sql, (symbol, price))
        db.commit()
        print(f"[入库成功] {symbol} 最新价格: {price}")
    except Exception as e:
        print("写库失败:", e)
        db.rollback()

# ====== 推送层(模拟,实际可用 WebSocket) ======
def push_to_client(symbol, price):
    print(f"[推送到客户端] {symbol} 最新价格 {price}")

# ====== 秒级调度(触发层) ======
symbols = ["BTCUSDT", "ETHUSDT"]

while True:
    for sym in symbols:
        price = fetch_price(sym)
        if price:
            save_to_db(sym, price)
            push_to_client(sym, price)
    time.sleep(1)  # 每秒执行一次

代码要点:

  1. 采集层 使用 交易所 API 获取实时价格。
  2. 代理IP(爬虫代理) 确保高频访问不限制。
  3. 入库层 存储行情,用于历史分析。
  4. 推送层 模拟实时推送,实际可用 WebSocket 广播

四、总结

在行情业务中,秒级更新系统 的核心目标是:

  • 触发层:秒级驱动行情采集。
  • 采集层:API + 代理IP 防止封禁。
  • 缓冲层:保障高并发稳定。
  • 入库层:保存历史+缓存实时数据。
  • 推送层:保证用户端 秒级可见行情

这种端到端架构,既能满足 高并发,又能做到 低延迟,是 行情推送、金融交易风控、实时监控 等场景的理想方案。

相关文章
|
24天前
|
SQL 前端开发 关系型数据库
如何开发一套研发项目管理系统?(附架构图+流程图+代码参考)
研发项目管理系统助力企业实现需求、缺陷与变更的全流程管理,支持看板可视化、数据化决策与成本优化。系统以MVP模式快速上线,核心功能包括需求看板、缺陷闭环、自动日报及关键指标分析,助力中小企业提升交付效率与协作质量。
|
8天前
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
20天前
|
人工智能 监控 测试技术
告别只会写提示词:构建生产级LLM系统的完整架构图​
本文系统梳理了从提示词到生产级LLM产品的八大核心能力:提示词工程、上下文工程、微调、RAG、智能体开发、部署、优化与可观测性,助你构建可落地、可迭代的AI产品体系。
290 51
|
15天前
|
机器学习/深度学习 人工智能 缓存
面向边缘通用智能的多大语言模型系统:架构、信任与编排——论文阅读
本文提出面向边缘通用智能的多大语言模型(Multi-LLM)系统,通过协同架构、信任机制与动态编排,突破传统边缘AI的局限。融合合作、竞争与集成三种范式,结合模型压缩、分布式推理与上下文优化技术,实现高效、可靠、低延迟的边缘智能,推动复杂场景下的泛化与自主决策能力。
101 3
面向边缘通用智能的多大语言模型系统:架构、信任与编排——论文阅读
|
12天前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
|
16天前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
16天前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
Spring Boot 3.x 微服务架构实战指南
|
8天前
|
XML 人工智能 JSON
意图识别准确率97.6%!高阶多轮对话RAG架构实战分享​
本文系统解析NLU中意图识别与槽位抽取的4种技术方案:从提示词工程入门,到节点分离、RAG增强,再到多轮对话优化,覆盖不同场景的选型策略,助力AI智能体精准理解用户需求。
256 3
|
19天前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
241 7
下一篇
oss教程