5/03/2009

ganji.com Architecture

程序员 Vol 4, 2009 有一篇对赶集网CEO和技术副总的采访,里面简要谈到ganji.com的架构。从登载的访谈内容来看,其系统架构如下:

1. Software Stack


Web Server - Nginx
App Lang - php
Database - mysql
OS - Linux

2. Global Optimization

App Cache
- e-accelerator
- memcache
- tt server

Web Cache
- Squid Cluster

CDN
- Detail Unknown

Load Balance
- Citrix Netscaler

3. Database Optimization

Performance - Read/Write Separation(Master/Slave Cluster)
Availability - Active/Passive Failover
Load Balance - Hardware rather Mysql Proxy

4. Intra-Site Search

- Sphinx

总的说来,整个架构中规中矩,每个子系统采用的都是最广为接受的方案。比较好奇的几点:

1. 分类广告网站这样天生按照地域作为(Content/Requests)分割依据的应用,非常适合用Dynamic Load-Balance DNS来做负载平衡, 而且用软件实现Load Balance的LVS也被很多系统采用,只有极少数有钱又有强烈需求的主才会采用F5, NetScaler这样的hardware solution。赶集网的规模真到了从web到db都必须要用硬件来解决负载分配问题了?

2. 即使加上用户管理、广告发布,整个业务逻辑还是比较简单清晰,但为什么会采用这么多不同的Cache方案?

No comments: