2013年6月18日星期二

又拍网架构 -- 前端PHP后台Python +消息中间件 RabbitMQ + 分库步骤

又拍网的服务器端开发语言主要是PHP和Python,其中PHP用于编写Web逻辑(通过HTTP和用户直接打交道), 而Python则主要用于开发内部服务和后台任务。 这是目前Web2.0公司的通用选项。

消息中间件:RabbitMQ
1.RabbitMQ: high performance messaging solution
3.通过消息中间件和云计算实现系统可伸缩性
5.RabbitMQ安装和测试小记


分库的一般阶段:
1. 一台主库和一台从库组成。 从库只用作备份和容灾,当主库出现故障时,从库就手动变成主库,一般情况下,从库不作读写操作(同步除外)。
2. 一台主库和多台从库。一些实时性要求不高的Query放到从库去执行。后面又通过添加多个从库来分流查询压力。
3. 随着数据量的增加,主库的写压力也越来越大,这是要拆库:
   3.1. 垂直拆分:是指按功能模块拆分,比如可以将群组相关表和照片相关表存放在不同的数据库中,这种方式多个数据库之间的表结构不同。
   3.2. 水平拆分:而水平拆分是将同一个表的数据进行分块保存到不同的数据库中,这些数据库中的表结构完全相同。
   3.3. 一般都会先进行垂直拆分,因为这种方式拆分方式实现起来比较简单,根据表名访问不同的数据库就可以了。

没有评论:

发表评论