go-zero demo 之 acger-pair 简介

Acger Pair 是一个为了学习微服务框架go-zero而搭建的一个练手项目,供大家学习、参考
Acger Pair is a project built to learn go-zero, enjoy your self

主页地址:https://acger-pair.com
源码地址:https://github.com/acger/pair
web端源码:https://github.com/acger/pair-web

项目基于TiDB、Elasticsearch、Filebeat、Kafka、Redis等技术栈开发,也包含了gorm、validator、copier、json-iterator、go-queue、go-elasticsearch、websocket、qiniu等等常用库,有兴趣的小伙伴翻一下代码就可以看到相关实践。服务端总共只有三个模块,用户模块 - user, 匹配模块 - pair, 聊天通讯模块 - chat,每个模块都有自己得api与rpc服务,手写的代码不过两三百行。自从使用了go-zero做开发,摸鱼时间翻倍生产效率直接提高100% ,go-zero yyds!
  • 这里顺手安利一下tidb,在群里看到经常有小伙伴问分布式事务怎么搞,其实把这个问题交给分布式数据库就好了。当你使用tidb的时候,跟使用单体的mysql数据库几乎是一模一样的,零代码入侵。分布式事务中的并发处理、数据的拆合、节点间的调度全部都在tidb内部完成,应用端可以无感知的使用,非常舒适。

  • 还有提一下的是,项目使用Github Actions + K8S 实现自动化CI/CD部署。部署流程也相当简单,需要用到的文件都有保存在项目当中,详细可以查看以下目录:

/.github/workflows  --- actions工作流的配置文件
/deploy/actions/dockerfile --- 部署时要用的dockerfile文件(去除了goproxy设置)
/deploy/k8s --- 初次部署到k8s需要用到的manifest文件
/deploy/k8s/temp  --- temp文件夹下也有dockerfile,方便手动制作镜像

如果在本地环境下,用k3d部署本项目,部署完大概是这样子的:

acger-pair-local.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容