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

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 区块链交易所开发详细、区块链交易所系统开发(开发方案)、区块链交易所源码案例部署数字货币交易所开发详情版、数字货币交易所系统开发(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}}

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
监控 安全 前端开发
交易所系统开发(源码正式版)/需求逻辑/玩法详情/规则架构
交易所源码开发是指基于特定的需求和要求,从头开始构建一个自定义的交易所平台的开发过程。这种开发可以包括以下几个关键方面:
|
存储 SQL 消息中间件
国王小组:区块链交易所搭建|如何用微服务替代单服务架构
本篇文章一共分为三个部分,分别是微服务架构的演进过程、具体实践微服务的应用技术和领域驱动设计的意识转变。微服务架构已经渗透到互联网应用的方方面面,而领域驱动设计也逐渐被业界所接收。
国王小组:区块链交易所搭建|如何用微服务替代单服务架构
|
消息中间件 JavaScript Java
国王小组:交易所搭建|如何解决事件驱动架构
介绍 还是先举例子,在平常的生活中事件驱动架构也是比较常见的。一般情况下的人与人之间的沟通都是以一个人说一个人听的关系进行,并同时可以交换听者与说着。伴随着听者听到说者所表述的内容后,做出的心理,行为上的反应就是事件在接受者中的处理过程。
国王小组:交易所搭建|如何解决事件驱动架构
|
安全 数据管理 API
国王小组:交易所搭建|API网关的API架构
一、何为API网关? APIGateway 即API网关,所有请求首先会经过这个网关,然后到达后端服务,有点类似于Facade模式。API网关作为系统接口对外的统一出口,可以减少调用方对服务实现的感知。 没有API网关时的系统结构如下图1:由图可以看出,在没有API网关作为统一出口的情况下,需要调用方自己组合各种服务,而且容易让调用方感知后端各种服务的存在。
国王小组:交易所搭建|API网关的API架构
|
存储 NoSQL Go
国王小组:开发国际交易所搭建|如何选择合适的容器技术架构
国王小组:开发国际交易所搭建|如何选择合适的容器技术架构
|
存储 消息中间件 自然语言处理
国王小组:国际多语言交易所搭建|如何选择开发架构风格
DDD为复杂软件的设计提供了指导思想,其将易发生变化的业务核心域放置在限定上下文中,在确保核心域一致性和内聚性的基础上,DDD可以被多种语言和多种技术框架实现,具体的框架实现需要根据实际的业务场景和需求来制定。
|
运维 监控 安全
国王小组:数字货币交易所搭建|微服务架构运用理解
核心思想:分而治之,将一个应用拆分成多个松耦合的服务,这些服务之间通过某种协议(REST、RPC等)进行互相协作,其中一个关键点就是各服务之间的松耦合,各服务之间通过一种“标准”的协议进行沟通,不需要理解对方服务的实现逻辑、实现方式,只要在对方不影响自己所提供的服务功能即可。
|
19天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
|
4天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
12 3
|
8天前
|
监控 负载均衡 应用服务中间件
探索微服务架构下的API网关设计与实践
在数字化浪潮中,微服务架构以其灵活性和可扩展性成为企业IT架构的宠儿。本文将深入浅出地介绍微服务架构下API网关的关键作用,探讨其设计原则与实践要点,旨在帮助读者更好地理解和应用API网关,优化微服务间的通信效率和安全性,实现服务的高可用性和伸缩性。
26 3

热门文章

最新文章