打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
人人网的系统架构

今天在网上看到人人网使用的开源软件列表 ,人人网的架构师写的,看完后,大概了解了人人网的架构信息

数据层

使用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对象的一个或者多个字段来操作,比如一个用户对象,我们可以只更新它的姓名。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
memcached一致性hash
Memcached 入门
大型web系统数据缓存设计
memcached全面剖析–4. memcached的分布式算法
memcached全面剖析–5. memcached的应用和兼容程序
ICE使用【1】远程打印
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服