当前位置: 首页 > 图灵资讯 > java面试题> java架构设计面试题-如何设计一个微博

java架构设计面试题-如何设计一个微博

来源:图灵教育
时间:2024-05-22 13:27:26
实现哪些功能:

筛选出核心功能(Post a Tweet,Timeline,News Feed,Follow/Unfollow a user,Register/Login)

承担多大QPS:

QPS = 100,那么用我的笔记本做Web服务器就好了

QPS = 1K,一台好点的Web 服务器也能应付,需要考虑单点故障;

QPS = 1m,则需要建设一个1000台Web服务器的集群,考虑动态扩容、负载分担、故障转移

一台 SQL Database (MySQL)承受量约为 1K的QPS;

一台 NoSQL Database (redis) 约承受量是 20k 的 QPS;

一台 NoSQL Database (Memcache) 约承受量是 200k 的 QPS;

微服务战略拆分

针对不同服务选择不同存储

设计数据表的结构

基本差不多就形成了一个解决方案,但是并不是完美的,仍然需要小步快跑的不断的针对消息队列、缓存、分布式事务、分表分库、大数据、监控、可伸缩方面进行优化。