为什么Discord放弃了Redis并重新在Kubernetes上构建搜索功能
💡
原文中文,约2000字,阅读约需5分钟。
📝
内容提要
Discord因用户快速增长重构搜索功能,放弃Redis,转向Kubernetes和Elasticsearch。新架构解决了消息丢失和性能问题,提升了索引吞吐量和查询速度,支持数万亿条消息的处理,确保灵活性和高效性。
🎯
关键要点
- Discord因用户快速增长重构搜索功能,放弃Redis,转向Kubernetes和Elasticsearch。
- 原有的Elasticsearch系统在快速增长下崩溃,导致消息丢失和性能问题。
- Redis支持的消息索引队列成为故障点,单个节点故障导致批量索引操作失败。
- Kubernetes的引入使得操作系统升级自动化,滚动重启安全可行,资源分配优化。
- Discord实现了多集群“单元”架构,减少了大型节点集群的管理复杂性。
- 从Redis迁移到Pub/Sub解决了消息丢失问题,支持复杂的消息路由策略。
- 新架构支持跨消息搜索,提升了索引吞吐量和查询速度,确保灵活性和高效性。
- Discord现已能够处理数万亿条消息,性能指标全面提升,适应未来增长。
🏷️
标签
➡️