Stockexchange
一个gozero项目
Install / Use
/learn @Winter0506/StockexchangeREADME
简介
一个学习go语言时候边学边做的项目,使用go-zero框架,里面还用到了gorm和redis分布式锁,使用rocketmq做到可靠消息的最终一致性,实现模拟简单的股票交易系统, 本人学习的时候参考了很多视频,也看了很多的代码,其中最感谢的就是波波老师的go开发工程师
目前一共包含账户服务、股票详情查询服务、用户收藏服务、库存服务、订单服务五大块
当前版本只实现了股票的买入操作,本人忙于写毕业论文,后续卖出操作逻辑和买入相似,就不想写了; 前端短时间也学不完, 也就没写,等以后有时间再弄吧
当前还未实现的功能主要有:
- 股票卖出操作
- 订单微服务中 股票委托 与 股票订单 如何区分开? 通过委托价和当前价如何实现延时成交, 即我先发起委托,当委托价真正和当前价相等再成交
- 委托数目不一定就是最后的成交数目,这个功能也没做
- 里面很多地方肯定有bug, 很多地方逻辑能跑通, 但是设计的有问题,代码写的也会有问题
- 没有做链路追踪、限流、熔断、降级(还没学呢,暂时不会)
- 可以试着在用户操作里面添加每笔交易操作后的笔记,形成自己的交易日记(当前很多专门的交易app也没这个功能)
- 可以尝试用python量化交易计算买卖点,通过rpc服务来进行买卖
本人不是专业韭菜,术语不会整,大体意思表达大家懂就行
由于当前golang的项目,尤其基于go-zero的很少,本人看了很多的博客,视频,踩了很多坑,很多地方写的其实并不好,但是还是厚着脸皮分享出来,希望广大的golang新手能够少踩坑,能力更上一层楼
目前每个微服务里面实现的功能有:
账户服务
- 用户注册
- 用户登录
- 修改用户信息
- 查询用户详情
- 删除用户
股票详情服务
- 使用的是新浪的api,每次查询都会请求新浪服务器
- 新建股票到数据库(一开始不可能有所有股票信息)
- 股票实时信息查询(通过股票名、股票代码)
用户操作服务
- 添加收藏
- 删除收藏
- 查看用户所有收藏的股票
- 查看某支股票被哪些用户收藏(管理员)
库存服务
- 设置库存
- 查询库存
订单服务
- 订单服务一共包含 用户钱包表、用户持仓表、用户委托表、用户订单表
- 查询钱包信息
- 更新钱包
- 查询持仓
- 发起委托
项目运行命令
go run user.go -f etc/user.yaml
go run stock.go -f etc/stock.yaml
go run operation.go -f etc/operation.yaml
go run order.go -f etc/order.yaml
go run inventory.go -f etc/inventory.yaml
go run stockexchange.go -f etc/stockexchange.yaml
etcd查询
D:\Go\etcd-v3.4.14-windows-amd64>etcdctl.exe --endpoints=http://127.0.0.1:2379 get stock.rpc --prefix
stock.rpc/7587860728117661703
127.0.0.1:8081
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
