前言
在实际场景或新产品中,为了效率和维护型我们最常用的还是单体应用。在这个分布式为主流的时代,使用单体看着非常小气,为了不给分布式应用影响,我来定义一下单体需要做到的目标。
单体的瓶颈
- 数据写入上限,之前经过测试,单表无事务 , i7 16G SSD 128 环境测试中 写入在2000/tps,
多表 800/tps 基本可以满足大部分业务。
2.数据读取,在单体中读取数据是个相当好解决的事情,在几年前的架构 ssh中,我们做出了天3000W/QPS 的流量,使用了 mysql 主从 + ehcach 进行缓存 + 2*tomcat,当然这个容易实现的原因是热门的就那几个文章,浏览计算使用队列批处理,在不保证事务的情况下可以达到写入 10W/S,对于读取可以完全放心,还有各种花式redis 什么的还没用上。
边界
好了终于可以进入正题,对于边界:
1.不要去考虑纵向扩展,例如把无事务相关的表分开数据库来扩展写入,这样会掉入设计陷阱,无论怎么设计都设计不好,又这种情况直接,重构为分布式。
2.横向设计扩展,决定你单体应用的设计水准,例如,直接开从MYSQL 4个最高。10个TOMCAT 可以直接开新的主机之间提升性能。
3.技术栈
尽量少的技术栈,越少越好
补充,关于界面渲染
极致最求,由客户端渲染。
结束
给自己的思考保留一份文章。
网友评论