首先,数据库切分有两种:水平切分、垂直切分。
水平切分就是横向扩库或扩表,利用DB路由或者table路由查询查询。google有个hibernateShards,这里没什么可说。阿里还有自己的DDAL框架Amoeba。
垂直切分就是把不同的业务放到不同库中,业务切分、系统解耦、分布式事务。复杂的业务涉及到数据同步问题,我们大量即时数据采用共用内存缓存达到数据实时读取的目的。
今天用户抱怨我们上传图片不如阿里快,其实分布式缓存GFS,Google就是行业老大,GFS、bigtable都是响当当的巨牛应用。
其实想法谁都有,高性能的实现还是一个长久和高深的技术能力问题。
今天还学到一个不错的网络架构CDN(内容分发网络),没想到我们既然没有用它,照成南北服务器访问不均衡,用户使用不同运营商访问速度不一样。唉,是不是这玩意贵啊。
路漫漫其修远兮吾将上下而求索。