人人网架构
2013-10-14 12:04
197 查看
转载至:http://www.cnblogs.com/netflu/archive/2011/08/31/2161460.html
今天在网上看到人人网使用的开源软件列表 ,人人网的架构师写的,看完后,大概了解了人人网的架构信息
数据层
使用MySQL ,同时使用Tokyo
Cabinet (Key-value的存储引擎,简称TC)做一个数据冗余,TC代替MySQL做存储,例如搜索结果页的用户资料,但Tokyo
Cabinet 没有网络处理能力,需要使用Tokyo
Tyrant 以提供网络接入能力,并调用Tokyo
Cabinet 的API进行持久化存储
Tokyo
Tyrant 其实也是Tokyo Cabinet的作者开发的,主要是支持Memcached传输协议的网络接口,可以理解为Tokyo Tyrant处理网络连接,协议解析,然后调用Tokyo Cabinet的API来完成持久化存储
服务端
Web Server : Nginx ,
使用Nginx的代理能力,做跨IDC的请求代理,同时与Java Server–Resin搭配,解决Resin网络连接处理能力弱的问题
Java Server: Resin 替代Tomcat作为Java服务器
代理服务器 : Squid 做图片文件的反向代理缓存
Linux服务器集群系统: LVS(Linux Virtual Server),使用它的4层的负载均衡,替代了很多硬件的负载均衡设备
Java web框架: Struts,王兴同学一开始写校内网果然是用structs,现在的人人网开始慢慢舍弃原有的框架,并自己开发了一个web框架,传闻将来也会开源出来
搜索引擎框架: 基于Lucence 提供搜索人的服务
网络框架:Netty ,一个Java的网络框架,和apache的mina类似,但比mina更高效,用来提供一些小的服务
服务器系统监控
ganglia Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格
应用层缓存
Memcached 一个纯内存的key-value的cache系统,使用spymemcached作为java的Client
ICE : 一个跨语言的网络通讯框架,框架本身提供了强大的通讯能力,管理工具,负载均衡方案,其跨语言能力也是一个很大的亮点,基于这个框架之上,我们选用合适的语言来提供合适的服务,比如我们使用C++来开发Cache服务,使用Java来开发一些逻辑服务。框架本身可以很重,也可以很轻,具体要看你怎么用:)
Memcached和ICE的缓存服务区别
对Cache的操作粒度不一样,Memcached对Cache对象以binary byte作为一个整体来操作,需要频繁的序列化和反序列化,我们使用ICE提供的Cache服务,可以以Cache对象的一个或者多个字段来操作,比如一个用户对象,我们可以只更新它的姓名。
今天在网上看到人人网使用的开源软件列表 ,人人网的架构师写的,看完后,大概了解了人人网的架构信息
数据层
使用MySQL ,同时使用Tokyo
Cabinet (Key-value的存储引擎,简称TC)做一个数据冗余,TC代替MySQL做存储,例如搜索结果页的用户资料,但Tokyo
Cabinet 没有网络处理能力,需要使用Tokyo
Tyrant 以提供网络接入能力,并调用Tokyo
Cabinet 的API进行持久化存储
Tokyo
Tyrant 其实也是Tokyo Cabinet的作者开发的,主要是支持Memcached传输协议的网络接口,可以理解为Tokyo Tyrant处理网络连接,协议解析,然后调用Tokyo Cabinet的API来完成持久化存储
服务端
Web Server : Nginx ,
使用Nginx的代理能力,做跨IDC的请求代理,同时与Java Server–Resin搭配,解决Resin网络连接处理能力弱的问题
Java Server: Resin 替代Tomcat作为Java服务器
代理服务器 : Squid 做图片文件的反向代理缓存
Linux服务器集群系统: LVS(Linux Virtual Server),使用它的4层的负载均衡,替代了很多硬件的负载均衡设备
Java web框架: Struts,王兴同学一开始写校内网果然是用structs,现在的人人网开始慢慢舍弃原有的框架,并自己开发了一个web框架,传闻将来也会开源出来
搜索引擎框架: 基于Lucence 提供搜索人的服务
网络框架:Netty ,一个Java的网络框架,和apache的mina类似,但比mina更高效,用来提供一些小的服务
服务器系统监控
ganglia Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格
应用层缓存
Memcached 一个纯内存的key-value的cache系统,使用spymemcached作为java的Client
ICE : 一个跨语言的网络通讯框架,框架本身提供了强大的通讯能力,管理工具,负载均衡方案,其跨语言能力也是一个很大的亮点,基于这个框架之上,我们选用合适的语言来提供合适的服务,比如我们使用C++来开发Cache服务,使用Java来开发一些逻辑服务。框架本身可以很重,也可以很轻,具体要看你怎么用:)
Memcached和ICE的缓存服务区别
对Cache的操作粒度不一样,Memcached对Cache对象以binary byte作为一个整体来操作,需要频繁的序列化和反序列化,我们使用ICE提供的Cache服务,可以以Cache对象的一个或者多个字段来操作,比如一个用户对象,我们可以只更新它的姓名。
相关文章推荐
- 人人网张铁安:Feed系统架构分析
- 人人网数据服务平台:基于日志分析的数据系统架构-严岩
- 人人网移动开发架构
- ZT:专访人人网黄晶:SNS网站后台架构探秘
- TUP第二期人人网张铁安:Feed系统架构分析
- 人人网移动开发架构
- 黄晶谈人人网架构
- 人人网移动开发架构
- 转_人人网开放平台技术架构
- facebook与人人网的网站后台架构对比
- 人人网缓存系统架构的发展和演进—张铁安
- 人人网的系统架构
- 人人网技术架构的一偏文章
- 人人网开放平台技术架构
- facebook与人人网的网站后台架构对比
- 人人网移动开发架构
- 人人网的架构
- 人人网的系统架构 网上搜集
- 人人网移动开发架构(转)
- QCon北京2012-人人网缓存系统架构的发展总结