国王小组:搭建交易所开发需要的服务器架构

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 区块链交易所开发详细、区块链交易所系统开发(开发方案)、区块链交易所源码案例部署数字货币交易所开发详情版、数字货币交易所系统开发(web3.0技术开发)、数字货币交易所开发源码成品交易所服务器是一个具有高速性能的交易后台,专为加密货币交易所设计。它可以支持每秒10000次的交易,并通过websocket实时通知用户/市场数据。

区块链交易所开发详细、区块链交易所系统开发(开发方案)、区块链交易所源码案例部署
数字货币交易所开发详情版、数字货币交易所系统开发(web3.0技术开发)、数字货币交易所开发源码成品交易所服务器是一个具有高速性能的交易后台,专为加密货币交易所设计。它可以支持每秒10000次的交易,并通过websocket实时通知用户/市场数据。

架构
image.png
对于这个项目,它在这张图片中被标记为服务器。

代码结构
所需的系统

MySQL。用于保存操作日志、用户余额历史、订单历史和交易历史。

Redis。一个Redis哨兵组用于保存市场数据。

Kafka。一个消息系统。

基础库

网络。一个事件基础和高性能的网络编程库,轻松支持1000K TCP连接。包括TCP/UDP/UNIX SOCKET服务器和客户端的实现,一个简单的定时器,状态机,线程池。

实用工具。一些基本库,包括日志、配置解析、一些数据结构和http/websocket/rpc服务器实现。

模块

matchengine:这是最重要的部分,因为它记录用户余额和执行用户订单。它是内存数据库,将操作日志保存在MySQL中,并在启动时重做操作日志。它还将用户历史记录写入MySQL,推送余额、订单和交易信息到kafka。

市场价格。从kafka中读取消息,并生成k线数据。

readhistory。从MySQL中读取历史数据。

accesshttp:支持简单的HTTP接口,为上层隐藏复杂性。

accwssws。一个websocket服务器,支持用户和市场数据的查询和推送。顺便说一下,你需要nginx在前面,以支持wss。

alertcenter。一个简单的服务器,将FATAL级别的日志写入redis列表,以便我们可以发送警报邮件。

编译和安装
操作系统

Ubuntu 14.04 或 Ubuntu 16.04。还没有在其他系统上测试。

要求

见要求。安装上述系统或库。

你必须使用 depends/hiredis 来安装 hiredis 库。否则它可能不兼容。

编译

首先编译 network 和 utils。其余的都是独立的。

部署

matchengine、marketprice和alertcenter只有一个实例,而readhistory、accesshttp和accwssws可以有多个实例来进行负载平衡。

请不要在同一台机器上安装每个实例。

每个进程都在deamon中运行,并以一个看门狗进程开始。当崩溃时,它将在1秒内自动重启。

部署实例的最佳做法是在以下目录结构中。
matchengine
|---bin
| |---matchengine.exe
|---log
| |---matchengine.log
|---conf
| |---config.json
|---shell
| |---restart.sh
| |---check_alive.sh
API
HTTP协议和Websocket协议文件有中文版本。如果时间允许,我们将在将来把它翻译成英文。

还有一个第三方的OpenRPC文档可用。

第三方客户端
Python3 API的实现
Ruby Gem 💎
C# API
测试交换API的HTML UI
Websocket授权
Websocket协议有一个授权方法(server.auth),用于授权Websocket连接订阅用户的特定事件(交易和平衡事件)。

为了适应这个方法,你的交易所前端需要提供一个内部端点,该端点从名为 "授权 "的HTTP头中获取授权令牌,并验证该令牌和返回用户ID。

内部授权端点由配置文件(accessws/config.json)中的auth_url设置定义。

响应示例。{"code":0, "消息": null, "数据":{"user_id":1}}

相关文章
|
20天前
|
SQL 前端开发 关系型数据库
如何开发一套研发项目管理系统?(附架构图+流程图+代码参考)
研发项目管理系统助力企业实现需求、缺陷与变更的全流程管理,支持看板可视化、数据化决策与成本优化。系统以MVP模式快速上线,核心功能包括需求看板、缺陷闭环、自动日报及关键指标分析,助力中小企业提升交付效率与协作质量。
|
24天前
|
JSON 文字识别 BI
如何开发车辆管理系统中的加油管理板块(附架构图+流程图+代码参考)
本文针对中小企业在车辆加油管理中常见的单据混乱、油卡管理困难、对账困难等问题,提出了一套完整的系统化解决方案。内容涵盖车辆管理系统(VMS)的核心功能、加油管理模块的设计要点、数据库模型、系统架构、关键业务流程、API设计与实现示例、前端展示参考(React + Antd)、开发技巧与工程化建议等。通过构建加油管理系统,企业可实现燃油费用的透明化、自动化对账、异常检测与数据分析,从而降低运营成本、提升管理效率。适合希望通过技术手段优化车辆管理的企业技术人员与管理者参考。
|
24天前
|
消息中间件 缓存 JavaScript
如何开发ERP(离散制造-MTO)系统中的生产管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO模式下的ERP生产管理模块,涵盖核心问题、系统架构、关键流程、开发技巧及数据库设计,助力企业打通计划与执行“最后一公里”,提升交付率、降低库存与浪费。
|
3天前
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
21天前
|
监控 供应链 前端开发
如何开发ERP(离散制造-MTO)系统中的财务管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO企业ERP系统中财务管理模块的搭建,聚焦应收账款与应付账款管理,涵盖核心功能、业务流程、开发技巧及Python代码示例,助力企业实现财务数据准确、实时可控,提升现金流管理能力。
|
21天前
|
供应链 监控 JavaScript
如何开发ERP(离散制造-MTO)系统中的库存管理板块(附架构图+流程图+代码参考)
本文详解MTO模式下ERP库存管理的关键作用,涵盖核心模块、业务流程、开发技巧与代码示例,助力制造企业提升库存周转率、降低缺货风险,实现高效精准的库存管控。
|
20天前
|
前端开发 API 定位技术
如何开发车辆管理系统中的用车申请板块(附架构图+流程图+代码参考)
本文详细解析了如何将传统纸质车辆管理流程数字化,涵盖业务规则、审批流、调度决策及数据留痕等核心环节。内容包括用车申请模块的价值定位、系统架构设计、数据模型构建、前端表单实现及后端开发技巧,助力企业打造可落地、易扩展的车辆管理系统。
|
15天前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
198 7
|
26天前
|
消息中间件 JavaScript BI
如何开发ERP(离散制造-MTO)系统中的客户管理板块(附架构图+流程图+代码参考)
本文详解离散制造-MTO模式下ERP系统客户管理模块的设计与实现,涵盖架构图、流程图、功能拆解、开发技巧及TypeScript参考代码,助力企业打通客户信息与报价、生产、交付全链路,提升响应效率与订单准交率。
|
26天前
|
JSON 前端开发 关系型数据库
如何开发ERP(离散制造-MTO)系统中的销售管理板块(附架构图+流程图+代码参考)
针对离散制造MTO模式,销售管理是业务核心入口,贯穿报价、订单、ATP、排产与交付。本文详解其架构设计、关键流程、数据模型及开发实践,助力企业提升交付准确率与运营效率。