分享一个系统架构图

【伍哥原创】
分享一个系统架构图

所有机器都是双4核,16G内存,1U机器。其中数据服务器做了RAID1+0。

1,负载调度层
用了两个机器,通过nginx实现负载调度,keepalived实现故障转移。不足的地方是备机资源显得有点浪费,看后面有什么地方可以用上,比如监控。
用了ip_hash,避免了Web机器间的session问题。

2,Web计算层
暂时两个机器,配置经典组合nginx加上php fcgi,目前还是用php5.2系列的。redis做数据的读写缓存,充分利用内存。
某些生成的静态页面通过主动分发策略保持两个Web机器的同步。用户上传的图片通过在cron配置rsync来实现被动同步。

3,数据库层
三个机器。其中两个机器是经典的主从复制。主机配置一个MySQL (InnoDB)实例,负责Web写入数据。从机配置3个MySQL从实例(MYISAM),其中3306/3307端口的实例负责Web数据查询,3308端口的实例负责为Sphinx索引服务。
另外一个机器是给论坛和帮助中心的,相对独立,目前负载也不高。数据扩容暂时用分库策略来解决。

4,分布式服务
一个机器,主要是两个分布式服务,一个是搜索sphinx searchd,另外一个是rabbitmq消息队列服务。

5,后续扩展
计划上FastDFS分布式文件系统作为图片存储系统,后面平滑扩容的问题就比较好的解决了。

你可能感兴趣的:(分享一个系统架构图)