go微服务实践-基于go-zero实现一个数字货币交易平台。

lilei · · 645 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

# go微服务实践-基于go-zero实现一个数字货币交易平台。 在线体验 斥巨资搞了台机器 http://47.113.223.16 账户密码在这 https://github.com/luxun9527/gex/blob/main/resource/users.txt 后端:https://github.com/luxun9527/gex 您的star,点赞评论是我更新的动力 前端:https://github.com/luxun9527/gex-ui 基于go-zero 实现一个数字货币交易平台现货交易的基本功能。 - 限价单,市价单的撮合。 - 基本行情(盘口,k线,tick),以及个人订单变化的实时推送。 ## 基本架构 ![](https://cdn.learnku.com/uploads/images/202403/24/51993/qySFFLK2ia.png!large) ## 基本功能 ### 限价单 ![](https://cdn.learnku.com/uploads/images/202406/10/51993/bZZs8Xnchx.gif) ### 市价单 ![](https://cdn.learnku.com/uploads/images/202406/10/51993/vVNUSmI7Pp.gif) ## 运行项目 项目依赖的中间件:消息组件pulsar,数据库mysql,redis,分布式事务dtm,websocket推送gpush。 1、配置一个host 映射, api.gex.com:项目地址 2、项目已经整理好docker-compose文件,依赖和程序分别在不同的docker-compose文件,使用docker-compose即可一键启动项目,docker版本不能太旧具体如下。 ```shell root@ubuntu:~/smb# docker-compose -v Docker Compose version v2.6.1 root@ubuntu:~/smb# docker version Client: Docker Engine - Community Version: 24.0.6 API version: 1.43 Go version: go1.20.7 Git commit: ed223bc Built: Mon Sep 4 12:32:12 2023 OS/Arch: linux/amd64 Context: default 执行命令 make build 编译项目。 make run 启动项目。 make clear 删除镜像和容器(会删除所有的容器和新建的镜像。) 账号lisi 密码lisilisi ``` 3、直接访问启动项目机器的ip, 默认nginx配置的是的是80端口。 ## go 实践 ### go-zero api rpc 基本使用 ### dtm saga处理分布式事务。 场景:分布式事务的问题,下单需要在订单服务插入一条数据,同时需要在账户服务冻结对应的资产。 解决方法:使用dtm的saga模式解决了分布式事务的问题。 ### etcd 实现管理后台动态配置参数。 场景:服务使用的一些配置,需要动态配置,在管理后台修改后,要及时生效。如价格精度,具体错误码的message。 解决方法:使用etcd的动态配置。 ### ast语法树 自制工具生成错误码,完善gorm gen的软删除 在一些场景如工具生成的代码无法满足我们的需要,或需要根据一段代码生成另一段代码的时候,可以使用ast语法树自制工具。 ### 错误日志在我们的上传到我们的im中如lark,tg,企业微信。 新增一个zap core即可,将指定级别的日志输出到我们的im中具体参考 https://github.com/luxun9527/zaplog ### Docke部署 使用docker-compose部署 ## v1.3.0 待完成 1、完善前端 。 2、k8s部署。 3、搞台服务器部署。

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

645 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传