Twitter 克隆
试图重建最大的社交网络应用程序之一 Twitter。
注意:这是我第一次尝试开发分布式系统,因此非常感谢任何反馈。
服务
使用的技术
- Golang(内部服务)
- Next.JS(网站 UI)
- 卡夫卡(发布/订阅)
- Apache Spark(分析)
- PostgreSQL(主数据库)
- PgPool II(数据库负载均衡器)
- Redis(缓存)
- Docker(容器化)
- Nginx(负载均衡器)
- GraphQL(边缘服务器/后端前端)
- ElasticSearch(搜索和索引)
- Firebase Cloud Messenger(通知服务)
系统设计
功能要求
- 创建推文(文本、图片、视频等)
- 查看时间线
- 点赞推文
- 转推/引用转推
- 关注他人
非功能性需求
- 可扩展且高效
- 高可用性
可选要求
- 指标和分析
- 通知
- 可观察性和监控(Prometheus、Grafana、Jaeger 等)
数据库架构
如何在本地运行
点击此处了解如何在本地运行