数据货币交易所项目——(1)项目简介


注意:按照中国国家相关法律政策规定,不得向中国大陆境内公民提供数字资产交易服务,不得提供人民币对数字货币的兑换及支付服务。如果不予配合履行以上职责,造成的一切后果与本人无关。

1、项目简介

项目地址:https://gitee.com/zhouzhz/coin-exchange.git

1.1、项目特色

  1. 基于内存撮合引擎,比传统基于数据库撮合引擎更快 ;
  2. 前后端分离,基于 OAuth2.0 + JWT 的 API 授权机制 ;
  3. 基于 SpringCloud 微服务架构,扩展更容易 ;
  4. 集成阿里最新的研究成功 SpringCloudAlibaba ;
  5. MySQL、MongoDB、Redis 多种数据存储方式,只为更快 ;
  6. Kafka 发布订阅消息队列,让订单更快流转 ;
  7. Netty 秒级实时 K-Line 推送 ;
  8. uni-app“七端”共享 ;
  9. 主流币种对接区块链接口齐全,开箱即用 ;
  10. 冷热钱包分离,两种提现方式,保证安全;

2、技术选型

2.1、后台技术

组件作用网址
Spring Framework容器http://projects.spring.io/spring-framework/
Spring Boot开发脚手架框架https://spring.io/projects/spring-cloud//
Spring Cloud微服务框架https://spring.io/projects/spring-boot/
Spring Security安全框架https://spring.io/projects/spring-security
MyBatis-PlusORM 框架https://mp.baomidou.com/
Nacos服务治理https://nacos.io/zh-cn/
Sentinel服务保护https://sentinelguard.io/zh-cn/
Seata分布式事务http://seata.io/zh-cn/
MyBatisORM 框架http://www.mybatis.org/mybatis-3/zh/index.html
MyBatis Generator代码生成http://www.mybatis.org/generator/index.html
PageHelperMyBatis 物理分页插件http://git.oschina.net/free/Mybatis_PageHelper
Druid数据库连接池https://github.com/alibaba/druid
Mongodb分布式文件存储数据库https://www.mongodb.com/
ZooKeeper分布式协调服务http://zookeeper.apache.org/
Redis分布式缓存数据库https://redis.io/
RedissonRedis 客户端https://redisson.org/
Jetcache缓存框架https://github.com/alibaba/jetcache
RabbitMQ消息队列https://www.rabbitmq.com/
Kafka消息队列http://kafka.apache.org/
Disruptor 并发框架https://lmax-exchange.github.io/disruptor/
FastDFS自建分布式文件系统https://github.com/happyfish100/fastdfs
Log4J日志组件http://logging.apache.org/log4j/1.2/
Swagger2接口测试框架http://swagger.io/
Lombok简化编码插件https://projectlombok.org/
Cloud Alibaba OSS云存储https://www.aliyun.com/product/oss/
Qiniu云存储http://www.qiniu.com/
FastJson & Gson数据序列化https://github.com/alibaba/fastjson
Jenkins持续集成工具https://jenkins.io/index.html
Maven项目构建管理http://maven.apache.org/
Tio实时推送https://gitee.com/tywo45/t-io
Netty实时推送https://netty.io/
Akka异步并发计算https://akka.io/

2.2、前端技术

2.2.1、后台管理系统

Vue + ElementUI + Axios + Xlsx + Showdown + Screenfull
在这里插入图片描述

2.2.2 前台系统

Vue + ElementUI + Axios + Stompjs + Zip + vue-i18n
在这里插入图片描述

2.2.3 移动全栈

			uni-app

在这里插入图片描述

3、了解SpringCloud体系

在这里插入图片描述

4、了解Spring Cloud Alibaba体系

在这里插入图片描述
组件:

  1. Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
  2. Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
  3. RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
  4. Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
  5. Alibaba Cloud OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
  6. Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

5、功能介绍与演示

5.1 后台管理系统

在这里插入图片描述

5.2 前台系统

在这里插入图片描述

5.3 移动全栈

在这里插入图片描述

6、架构设计

6.1 模块划分

6.1.1 撮合引擎服务

分布式内存撮合系统,使用 Raft 协议自建集群,实现数据复制、集群选举等,并自研分布式币种路由策略,解决多币之间数据隔离,线程竞争问题;当主机挂掉时,备机能快速感知并替换原主机状态继续提供服务,当集群扩容时,也实现数据分片的迁移和再分配。在部署时,我们可以采用单一分组,也可以采用 MULTI-RAFT-GROUP。我们还使用 Nosql 数据库 mongo 作为 recovery 的兜底方案,当撮合引擎所有节点都进行重新实例化时,那么就会走该兜底方案。

6.1.2 行情服务

  • OpenAPI
    对外提供 OpenAPI(开放平台),我们所有 API 的设计遵循 REST 设计标准,使用改造完后
    的 swagger 生成更符合国人习惯的测试平台;
  • K-Line
    K 线为专业 K 线,K 线可自定义日 K、1 分、3 分、5 分、15 分、30 分、10 小时、2 小时、4 小时、6 小时、12 小时、1 周等。价格平均线可以自定义:MA5、MA10、MA30 及其他个性化配置。技术指标包括:MACD、 KDJ、RSI、DMI、OBV、BOLL、SAR、DMA、TRIX、BRAR、VR、EMV、WR、ROC、MTM、PSY。

6.1.3 推送服务

推送服务为实时推送,数据的获取来自 Kafka,多线程订阅 Kafka 的分组,底层通过修改 spring-boot-stater-websocket 让其支持 Netty,并测试了 TIO 的推送方案,当客户端压力变大时,可通过 Spring Cloud Gateway 和 Nginx 实现负载均衡。经测试,客户端无卡顿或数据丢失的情况。

6.1.4 交易服务

币种获取、区域数据、币币交易市场行情,币币交易市场深度等各种交易数据展示,底层采用 Redis 做高速缓存,并使用 Sentinel 实现了服务的降级和流控。

6.1.5 用户中心服务

提供用户账号信息、身份验证、注册登陆、邀请分级奖励、第三方验证等功能;

6.1.6 监控服务

  • Boot-Admin :
    实现了服务上下线的邮件/短信/微信通知,显示微服务 name、id 和 version,显示在线状态,Loggers 的日志级别管理,Threads 线程管理,Environment 管理等;
  • sentinel-dashboard:
    提供一个轻量级的控制台,它提供机器发现、单机资源实时监控、集群资源汇总,以及规则管理的功能;
  • Zipkin:
    提供分布式链路调用监控系统,聚合各业务系统调用延迟数据,达到链路调用监控跟踪,以及服务直接依赖关系的计算。

6.1.7 钱包服务

采用了业界领先的冷热隔离充值钱包系统、多重签名、高防护 DDOS 攻击系统等领先技术,分钟级日志分析监控等手段,充分保证客户资产安全。

6.2 设计要求

在这里插入图片描述

6.3 整体架构

在这里插入图片描述

7、逻辑架构

在这里插入图片描述

8、部署架构

在这里插入图片描述
下面是本人的公众号:(有兴趣可以扫一下,文章会同步过去)
在这里插入图片描述

我是小白弟弟,一个在互联网行业的小白,立志成为一名架构师
https://blog.csdn.net/zhouhengzhe?t=1

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhz小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值