Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neon-rainbow/gintalk
使用Gin框架搭建的类似Reddit的论坛项目,项目实现了完整的点赞和评论系统
https://github.com/neon-rainbow/gintalk
gin golang kafka mysql redis
Last synced: 10 days ago
JSON representation
使用Gin框架搭建的类似Reddit的论坛项目,项目实现了完整的点赞和评论系统
- Host: GitHub
- URL: https://github.com/neon-rainbow/gintalk
- Owner: Neon-Rainbow
- License: apache-2.0
- Created: 2024-09-25T18:28:09.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-12-07T17:35:12.000Z (16 days ago)
- Last Synced: 2024-12-07T18:26:46.664Z (16 days ago)
- Topics: gin, golang, kafka, mysql, redis
- Language: Go
- Homepage:
- Size: 222 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GinTalk
使用Gin框架搭建的论坛项目## 项目部署:
项目的MySQL以及Redis使用了Docker部署
项目使用docker部署,docker具体可以修改[docker-compose.yml](docker-compose.yml)使用下列指令启动所有在 docker-compose.yml 文件中定义的服务
```shell
docker-compose up
```项目的具体配置信息在[配置文件](./conf/config.yaml)中,具体配置需求可以修改该文件
项目需要在MySQL中建表,建表语句在[该文件](./model/create_table.sql)中
## 运行项目
```shell
go run main.go
```## 项目日志
项目的日志内容由配置文件决定,日志库使用了[zap日志库](https://github.com/uber-go/zap)## 项目介绍
项目使用了 Gin 框架搭建了一个类似 [Reddit](https://www.reddit.com/) 的论坛项目,项目实现了完整的评论和点赞系统,这两个系统的设计如下:评论系统:
评论系统参考了抖音,知乎的设计,使用二级模式设计,评论热度的计算公式:
$$
hot = 0.6 * 评论数 + 0.4 * 点赞数
$$对于每一个帖子,统计出热度前100的评论,这些评论使用 ZSET 存储在 Redis 中,100条之后的评论存储在 MySQL 中,当用户请求评论时,先从 Redis 中获取前100条评论,如果 Redis 中没有,则从 MySQL 中获取