以微博核心业务为例,解读如何仅用1台服务器支持百万DAU
Posted AI算法攻城狮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以微博核心业务为例,解读如何仅用1台服务器支持百万DAU相关的知识,希望对你有一定的参考价值。
近些年,各家公司都在不断推出各种新的 App,百万 DAU 成为各种 App 的最基本目标。本文将详解如何通过大规格服务器 +K8s 的方案简化这些新项目的成本评估、服务部署等管理工作,并在流量增长时进行快速扩容。同时,本文还介绍了微博核心业务采用此方案部署时遇到的问题以及对应的解决方案。
问题与挑战
以一个常见的社交 App 后端服务为例,如果采用主流微服务架构进行设计,通常会包含用户、关系、内容、提醒、消息等多个模块;每个模块又会分别包含各自的 Web 接口服务、内部 RPC 服务、队列处理机等几部分;同时为了保证高可用,通常每个模块还需要部署 2 个及以上的实例,算下来仅部署上述列出的应用服务就超过 30 多个实例。而对于依赖的数据库和缓存,甚至每个业务功能都需要部署独立的实例,若再考虑读写分离、预留分库分表等,则 App 上线前需要部署的数据库和缓存实例可能多达上百个。
(常见的社交 App 后端架构)
对于上述这样一个典型的 App,如果采用传统的部署模式,则需要使用至少数十台服务器才能满足部署数十个应用服务实例以及上百个数据库和缓存实例的需求。若要对整个服务占用资源情况进行全面了解,或是对整个服务进行翻倍扩容,则还需要梳理清楚各个服务的依赖和部署情况,管理复杂度高。
而如果还要进一步提升服务器的利用率,可能还需要使用不同规格的服务器部署不同的实例,或是将新的实例与其他业务或者已有集群混部。在这种情况下,不论是服务部署、成本评估
以上是关于以微博核心业务为例,解读如何仅用1台服务器支持百万DAU的主要内容,如果未能解决你的问题,请参考以下文章