项目介绍
NFTurbo (拖把数藏)
NFTurbo (拖把数藏) 项目,是目前市面上唯一的数字藏品交易平台类项目。结合传统电商+区块链技术,后期还会结合大模型、AIGC 等。
数字藏品(Digital Collectibles)是一种基于区块链技术的数字资产,通常以不可替代代币(Non-Fungible Tokens, NFTs)的形式存在。这些藏品可以是各种形式的数字艺术品、音乐、视频、虚拟物品、游戏道具等。每一个数字藏品都是独一无二的,具有唯一的识别信息和所有权记录。这种特性使得数字藏品具有较高的收藏和投资价值。
![效果演示.png](/assets/%E6%95%88%E6%9E%9C%E6%BC%94%E7%A4%BA-Dy87egiN.png)
技术列表
这个项目用到了目前市面上最主流的 SpringCloudAlibaba 的技术栈,用到的框架都是目前的最新版+稳定版。
![系统架构.png](/assets/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84-CaquBHx4.png)
后端主要用到了像 JDK 21、Spring 6.1、SpringCloud 2023、Nacos、Sentinel、Dubbo、Redis、XXL-JOB、RocketMQ、ShardingJDBC、Druid、MySQL、EslasticSearch、Canal、 Seata、SaToken 等中间件及技术,还用到了像 Hutool、Logback、Caffeine、Mybatis、MybatisPlus、FastJson2等常用的开源框架。
前端主要以 Vue、UniApp、JavaScript 为主。
在技术方案上,主要涉及到了各种分布式、微服务、高并发、高可用等相关技术列表。
![技术.png](/assets/%E6%8A%80%E6%9C%AF-BL1FTGtL.png)
比如分布式事务、分布式 Session、分布式 ID、分布式锁、分布式任务、分布式缓存等等,以及像分库分表、多级缓存、搜索引擎等等。并且实现了很多有难度的功能,如秒杀、关单、排行榜等等很多很多。
而且这些技术的应用都是基于实际场景选择的不同方案,==比如分布式事务,我们项目中共用到了4种方案。==脱离场景谈方案都是耍流氓,所以我们是结合场景的实际可落地方案。
目前该项目才用的是市面上最主流的分布式技术栈,即 SpringCloud Alibaba + Nacos + Dubbo + RocketMQ + xxl-job + Redis + MySQL,具体的依赖技术以及对应版本见下表:
![后端技术栈.png](/assets/%E5%90%8E%E7%AB%AF%E6%8A%80%E6%9C%AF%E6%A0%88-C0_JFZMb.png)
项目特点
特点 | 理由 |
高并发&大流量 | 数藏项目是集电商+区块链于一身的项目,因为数藏本身具有收藏和增值的属性,所以天然存在秒杀场景,并且业务量也通常都是比较大的。所以存在高并发、大流量的特性。 |
微服务 | 数藏项目涉及到很多功能模块、比如认证、登录、用户管理、藏品管理、下单、支付、藏品管理、上链等等,天然适合做微服务部署。 |
技术创新 | 数字藏品底层是基于区块链进行管理的,所以在数藏业务中可以用到区块链技术。后期还会结合大模型、AIGC 等技术 |
项目真实性 | 而且市面上并没有形成垄断,有一些大公司在做,比如蚂蚁的鲸探,同时也有很多中小公司也都在研发自己的数藏交易平台。所以,项目的真实性不太容易被质疑。 |
业务流程简单 | 而且数藏电商的业务流程要比纯电商的业务要简单一些,比如不涉及到很复杂的逆向,也不太涉及到供应链、履约这些复杂业务逻辑。但是秒杀、支付、库存、搜索等核心功能也都是有的。 |
个性玩法 | 在电商之外,还有很多独特的玩法,比如空投、合成、盲盒、转赠、预定等。所以,因为他有高并发场景、有技术创新、业务逻辑简单、有独特玩法,所以非常适合我们作为项目学习,并且项目真实性有保障! |
跨端技术 | 市面上的数藏的产品基本都是小程序或者 h5的,所以非常适合用 uni-app 这种目前比较主流的跨端技术。 |
功能列表
目前已经完善了核心链路,如用户注册、登录、认证,商品查看、下单、支付、关闭,以及藏品的购买、用户的邀请、积分、排名,藏品的铸造、发行、转赠,后台的管理功能、空投、转赠、预订等玩法,后续还会出一些运维相关的监控、压测、对账等功能。
![功能列表.png](/assets/%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8-BSD1Vh2b.png)
后续还有更多的运维相关的,比如限流降级熔断、监控、压测、对账等功能。
适合谁看?
1、有 Java 基础但是没有真实的项目经历
2、有项目经历,但是自己的项目太水没亮点
3、日常工作都是在做 CRUD,没有技术难点
4、希望学习并掌握当今最新的 SpringCloud 技术栈
交付内容
我们的项目课交付内容是 视频+文档+代码
![交付.png](/assets/%E4%BA%A4%E4%BB%98-CElaX22G.png)
代码
同时提供了前端+后端代码。所有代码直接通过git进行管理,项目成员可以拉分支,也可以提交PR,可以一起互动。
但是我们项目主要以讲解后端为主,前端代码仅做项目展示!
目前代码还在不断更新中。
文档
文档是关于项目的设计思路以及相关技术使用的内容,主要包含以下信息:
文档大纲
目前文档已经有180+篇,还在不断更新中。
视频
视频主要是针对项目内容进行的视频讲解,主要讲解形式是通过debug方式逐行进行代码讲解,同时兼顾细节及效率。
目前视频已经有160+,还在不断更新中。