人人网的架构

来源:互联网 发布:毕向东java视频教程 编辑:程序博客网 时间:2024/05/01 02:03

人人网就是原来的校内网,校内网这个名字对SNS的发展有一定的局限性,同时迫于开心001越来越强大的压力,因此千像集团作出了改名的决定,详见这儿

人人网大概有5000台服务器,一开始服务器托管在世纪互联,但是由于找IDC托管的这种运营方式成本太高了,所以后来直接把服务器托管在电信和网通的机房了。

人人网主要采用JAVA开发,另外女人频道BBS采用PHP开发,Web服务器主要使用NginxResin

数据库使用的是Mysql,采用的是Master-Slave方式,并且使用Mysql Proxy程序,进行中间层代理,同时对数据按照网站功能进行垂直切分,比如用户注册登录是一部分、日志是一部分、相册是一部分、游戏又是一部分等;对数据本身进行水平切分,也就是Hash散表或者是散库。

人人网大概有如下的域名,当然还有一些,我没有一一在此列出来,只是列出了一些常用的域名
www.renren.com
www.5q.com
home.renren.com
i.renren.com
friend.renren.com
app.renren.com(所有应用列表)
apps.renren.com(进入到某一个应用)
game.renren.com
msg.renren.com
login.renre.com
reg.renren.com
invite.renren.com
pay.renren.com
browse.renren.com(用于搜索)
blog.renren.com
photo.renren.com
group.renren.com
share.renren.com
gift.renren.com
abc.renren.com
club.renren.com(论坛)
class.renren.com(班级)
game.renren.com
dev.renren.com
page.renren.com
mobile.renren.com(手机人人网)
m.renren.com
support.renren.com(客服)
basketball.renren.com(篮球巨星)
maoyou.renren.com(猫游记)
xnproxy.ad.renren.com
lady.renren.com
ladybbs.renren.com(人人网女人频道论坛)
s.xnimg.cn(保存js,css,图片等数据的服务器)
jebe.xnimg.cn
app.xnimg.cn
hdn***.xnimg.cn
hd***.xnimg.cn
.....
应该还有一些域名

其中game(pay).renren.com用的Web服务器是Resin,人人网的所有域名我没有一一测试,所以说的只是个大概
C:/Windows/system32>curl -I game.renren.com
HTTP/1.1 302 Found
Server: Resin/3.0.21
Cache-Control: no-cache
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Location: http://login.renren.com/Login.do?rf=r&origURL=http%3A%2F%2Fgame.renren.com%2Findex.do
Set-Cookie: kl=null; domain=.renren.com; path=/; expires=Thu, 01-Dec-1994 16:00:00 GMT
Set-Cookie: societyguester=null; domain=.renren.com; path=/; expires=Thu, 01-Dec-1994 16:00:00 GMT
Set-Cookie: XNESSESSIONID=66536e18a936; domain=.renren.com; path=/
Set-Cookie: XNESSESSIONID=abcAaOKVT8eDZ8nlxRlns; domain=.renren.com; path=/
Content-Type: text/html; charset=UTF-8
Content-Length: 123
Date: Mon, 24 Aug 2009 09:12:21 GMT

除了game(pay).renren.com外其它的域用的是nginx,本身nginx是不支持java(jsp,servlet等),必须与tomcat、resin、weblogic、websphere等组合起来使用才支持java
C:/Users/caihuafeng>curl -I renren.com
HTTP/1.1 302 Found
Server: nginx/0.6.32
Date: Sun, 23 Aug 2009 19:07:59 GMT
Content-Type: text/html
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Location: http://wwv.renren.com/xn.do?ss=10112&rt=26
Set-Cookie: kl=null; domain=.renren.com; path=/; expires=Thu, 01-Dec-1994 16:00:00 GMT
Set-Cookie: societyguester=null; domain=.renren.com; path=/; expires=Thu, 01-Dec-1994 16:00:00 GMT
Set-Cookie: XNESSESSIONID=cc54212fc1bc; domain=.renren.com; path=/
Set-Cookie: depovince=ZGQT; domain=.renren.com; path=/; expires=Wed, 26-Aug-2009 19:07:59 GMT
Set-Cookie: jebecookies=6ffb5bf3-7eea-4a15-a341-2b18f249650b|||||; domain=.renren.com; path=/
Set-Cookie: _r01_=1; domain=.renren.com; path=/; expires=Wed, 18-Aug-2010 19:07:59 GMT
Content-Length: 80

nslookup xnimg.cn输出如下,域名xnimg.cn后面对应的应该是一组集群服务器,不同的用户访问不同的服务器
C:/Windows/system32>nslookup xnimg.cn
服务器:  ns.crcbj.com
Address:  61.233.9.9

非权威应答:
名称:    xnimg.cn
Addresses:  123.129.232.37
   123.129.232.38
   123.129.232.39
   123.129.232.40
   123.129.232.55
   123.129.232.56
   123.129.232.57
   123.129.232.58
   123.129.232.59
   123.129.232.11
   123.129.232.33
   123.129.232.35
   123.129.232.36

同理s.xnimg.cn与xnimg.cn一样,也是一组服务器集群
C:/Windows/system32>nslookup s.xnimg.cn
服务器:  ns.crcbj.com
Address:  61.233.9.9

非权威应答:
名称:    s.xnimg.cn
Addresses:  123.125.46.62
   123.125.46.65
   123.125.46.66
   123.125.46.59
   123.125.46.60

hdn***.xnimg.cn及hd***.xnimg.cn的服务器好像使用了cdn系统,我们这里以hdn111.xnimg.cn域为例来看看

图片http://hdn111.xnimg.cn/photos/hdn111/20090615/2150/tiny_6qCc_123508i204234.jpg的Response Header为
Server nginx/0.7.57
Date Mon, 24 Aug 2009 10:04:18 GMT
Content-Type image/jpeg
Connection keep-alive
Content-Length 1576
Last-Modified Mon, 15 Jun 2009 13:53:31 GMT
Expires Thu, 06 Aug 2009 15:32:50 GMT
Cache-Control max-age=2592000
Accept-Ranges bytes
Age 190672
X-Cache HIT from hdn-JNDSTWT232-96.opi.com

从上面的输出可以看出,此服务器采用了CDN相关的技术,人人网的CTO是黄晶,不知道上述的字母h是不是代表黄的意思,只能是猜测了

人人网自己的域名服务器ns1.5q.com及ns2.5q.com
C:/Users/caihuafeng>nslookup -qt=ns renren.com
服务器:  ns.crcbj.com
Address:  61.233.9.9

非权威应答:
renren.com      nameserver = ns1.5q.com
renren.com      nameserver = ns2.5q.com

ns2.5q.com      internet address = 211.100.33.208

域名服务器ns1.5q.com没有开53端口,只有域名服务器ns2.5q.com开了53端口,53端口是DNS服务默认的端口,具体原因也不知道为什么
[root@CentOS_Test_Server ~]# nmap ns1.5q.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-08-24 17:57 CST
Interesting ports on 123.125.40.219:
Not shown: 1679 filtered ports
PORT   STATE  SERVICE
80/tcp closed http

Nmap finished: 1 IP address (1 host up) scanned in 29.504 seconds
[root@CentOS_Test_Server ~]# nmap ns2.5q.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-08-24 17:57 CST
Interesting ports on 211.100.33.208:
Not shown: 1678 filtered ports
PORT   STATE  SERVICE
53/tcp open   domain
80/tcp closed http

Nmap finished: 1 IP address (1 host up) scanned in 26.963 seconds

人人网的邮件服务器mail.renren.com
C:/Windows/system32>nslookup -qt=mx renren.com
服务器:  ns.crcbj.com
Address:  61.233.9.9

非权威应答:
renren.com MX preference = 10, mail exchanger = mail.renren.com

renren.com nameserver = ns2.5q.com
renren.com nameserver = ns1.5q.com
mail.renren.com internet address = 123.125.46.175
ns1.5q.com internet address = 123.125.40.219
ns2.5q.com internet address = 211.100.33.208

服务器mail.renren.com打开了110及25端口,确认是邮件服务器

[root@CentOS_Test_Server ~]# nmap -O mail.renren.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-08-24 19:23 CST
Warning:  OS detection will be MUCH less reliable because we did not find at least 1 open and 1 closed TCP port
Interesting ports on 123.125.46.175:
Not shown: 1677 filtered ports
PORT    STATE SERVICE
25/tcp  open  smtp
80/tcp  open  http
110/tcp open  pop3

Device type: broadband router|general purpose
Running: FiberLine embedded, Linksys embedded, Linux 2.4.X|2.5.X|2.6.X
OS details: FiberLine Wireless DSL router, Linksys WAG54G Wireless Gateway, Linux 2.2.16, Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11, Linux 2.6.4 - 2.6.9, Linux 2.6.8 (Ubuntu)
Uptime 41.448 days (since Tue Jul 14 08:39:12 2009)

Nmap finished: 1 IP address (1 host up) scanned in 33.138 seconds

跟踪域名www.renren.com的域名解析过程

[root@CentOS_Test_Server ~]# dig www.renren.com +trace | nali

; <<>> DiG 9.3.4-P1 <<>> www.renren.com +trace
;; global options:  printcmd
.                       10304   IN      NS      I.ROOT-SERVERS.NET.
.                       10304   IN      NS      G.ROOT-SERVERS.NET.
.                       10304   IN      NS      A.ROOT-SERVERS.NET.
.                       10304   IN      NS      E.ROOT-SERVERS.NET.
.                       10304   IN      NS      K.ROOT-SERVERS.NET.
.                       10304   IN      NS      M.ROOT-SERVERS.NET.
.                       10304   IN      NS      L.ROOT-SERVERS.NET.
.                       10304   IN      NS      B.ROOT-SERVERS.NET.
.                       10304   IN      NS      J.ROOT-SERVERS.NET.
.                       10304   IN      NS      H.ROOT-SERVERS.NET.
.                       10304   IN      NS      C.ROOT-SERVERS.NET.
.                       10304   IN      NS      F.ROOT-SERVERS.NET.
.                       10304   IN      NS      D.ROOT-SERVERS.NET.
;; Received 460 bytes from 61.233.9.9[北京市 铁通]#53(61.233.9.9[北京市 铁通]) in 65 ms

com.                    172800  IN      NS      L.GTLD-SERVERS.NET.
com.                    172800  IN      NS      M.GTLD-SERVERS.NET.
com.                    172800  IN      NS      A.GTLD-SERVERS.NET.
com.                    172800  IN      NS      B.GTLD-SERVERS.NET.
com.                    172800  IN      NS      C.GTLD-SERVERS.NET.
com.                    172800  IN      NS      D.GTLD-SERVERS.NET.
com.                    172800  IN      NS      E.GTLD-SERVERS.NET.
com.                    172800  IN      NS      F.GTLD-SERVERS.NET.
com.                    172800  IN      NS      G.GTLD-SERVERS.NET.
com.                    172800  IN      NS      H.GTLD-SERVERS.NET.
com.                    172800  IN      NS      I.GTLD-SERVERS.NET.
com.                    172800  IN      NS      J.GTLD-SERVERS.NET.
com.                    172800  IN      NS      K.GTLD-SERVERS.NET.
;; Received 504 bytes from 192.36.148.17[瑞典 斯德哥尔摩]#53(I.ROOT-SERVERS.NET) in 498 ms

renren.com.             172800  IN      NS      ns1.5q.com.
renren.com.             172800  IN      NS      ns2.5q.com.
;; Received 103 bytes from 192.55.83.30[美国]#53(M.GTLD-SERVERS.NET) in 5401 ms

www.renren.com.         600     IN      A       123.125.44.242[北京市 联通ADSL]
renren.com.             600     IN      NS      ns1.5q.com.
renren.com.             600     IN      NS      ns2.5q.com.
;; Received 119 bytes from 123.125.40.219[北京市 联通ADSL]#53(ns1.5q.com) in 62 ms

原创粉丝点击