`

SOHU这几年一些门户级别的程序系统(C/C++开发)

阅读更多
这段时间一直在弄海量数据,及时数据和高并发的东东;  
转贴一下很早之前chinaren的邹丹同学的报家底的一篇文章; 


bserv:

用于高负载,高读写速度的单点和集合数据。 内核为BerkeleyDB,外壳为UDP线程池。 接口为读写单点数据或者集合数据。单点数据就是Key->Value数据。 集合数据就是有索引的数据,List->Keys->Values。 比如一个班级所有成员,一个主贴所有回帖等等。 DBDS性能很高,每秒读取>800个每秒,写>300个每秒(志强xeon:2G*2,72Gscsi,Ram:2G) 配合java接口,目前应用在ChinaRen所有项目中(ChinaRen校内,校友录,社区等等)。是整个ChinaRen的核心数据服务,大概配备了50台服务器。 特点:高速,高请求量。用于各种数据的低成本存储,解决数据库无法实现超高速读写的问题。门户级别的高速数据服务。

OnlineServer:

ChinaRen/SOHU小纸条系统核心 核心为3个小server系统:online2(在线系统业务逻辑),userv(用户资料系统),cserv(LRU缓存) 这三个子系统都是UDP+线程池结构,单进程+多线程。配备java接口,apache_mod的json和xml接口。 online2包括了大部分业务逻辑,包括,上线,好友系统,纸条系统。 userv包括设置用户各种属性,信息。 cserv是个大的lru缓存,用于减小磁盘IO。可以放各种信息块,包括用户信息,好友,留言等。 目前配备4台服务器(DL380,xeon:3G*2,SCSI:146G raid,Ram:2G),用户分布到4台服务器上,相互交互。服务器可以由1台到2台,到4台,到8台。 底层存储为文件存储(无数据库),用reiserfs。 配套系统: mod_online,两个版本,apache和lighttpd版本,用于页面上显示蜡烛人。请求量巨大,目前用lighttpd版本的mod_online。 放在sohu的squid前端机器上,运行在8080,大概8台,每台请求量大概500-800个每秒。蜡烛人在所有ChinaRen页面有ID的地方 显示用户是否在线。 目前这套在线系统,作为SOHUIM的内核原型。准备开发WEBIM系统,用户所有SOHU矩阵用户的联络。

apache_mod系列:

基于apache2的服务有很多,用于高请求量,快速显示的地方。
1.mod_gen_verifyimg2:
用于显示验证码,使用GD2,freetype。直接在apache端返回gif流,显示随机的字体,角度,颜色等等。用于ChinaRen各个需要验证码的页面,请求量很大。
2.mod_ip2loc
用于apache端的IP->物理地址转换,高速,高效。 读取数据文件到内部数据树,高速检索,获得客户端ip的物理地址。用于需要IP自动定位的产品,还有就是数据统计等。比如ChinaRen校内, 每个客户端请求都能获得物理地址,用于应用的逻辑处理。
3.mod_pvserver2
ChinaRen社区帖子点击的记录和显示。 根据URL,得到帖子ID,通过UDP数据包,统计到bserv系统。并且把结果通过Cookie返回到客户端。html直接用javascript显示点击数在帖子上。 解决了点击数量高效记录,高效读取和非动态页面程序显示的问题。
4.mod_online
用于ChinaRen页面上的蜡烛人显示。和onlineserver通讯,得到用户在线状态和其他状态信息。请求量很大,每台前端大概500-800个请求。
5.其他mod 还有一些认证的,访问统计的,特种url过虑跳转的,页面key生成的,还有若干。 特点:高速,密集超高请求量。前端分担应用服务器压力,高效。


cserv:

高速LRU缓存系统。 内核是UDP+线程池+LRU结构(hash+PQueue)。 用于存放各种数据块,Key->Value结构。通过LRU方式提供给应用,可减小文件IO,磁盘IO等慢速操作。目前用于ChinaRen在线系统的用户资料缓存。 特点:高速读写,低成本。


ddap:

UDP+线程池,单进程,多线程的服务端程序原型,大部分程序由这个结构开始。 性能为8000-10000个请求每秒。


eserv:

访问统计系统 用于用户访问的次数和最后上线时间的存储和读写。 用于ChinaRen校友录每个班级的访问记录。存储为文件存储,并有同时写入后备的bserv,用于备份和检索。 目前性能,每台机器每秒50个记录,100个读每秒。能满足校友录巨大的用户登录记录的需要。 特点:无数据库,纯文件存储,高速读写。低成本


logserver:

用于各种事件的日志记录 核心为ddap,UDP+线程池 功能是分模块记录各种日志。ChinaRen所有用户服务,系统日志,都记录在logserver中。用于统计,查询。 写入性能很好,每秒100个单台机器。 特点:高速高效,低成本,海量。


SessionServ: 

session系统 核心为ddap,UDP+线程池 用于在内存中存储临时数据。有get/put/del/inc等操作。广泛的用于固定时间窗口的小数据存储。比如过期,数据有效性检测,应用 同步等等。由于是全内存操作,所以速度很快,存取速度应该>1000个每秒。 目前广泛用与ChinaRen社区,校内,校友录等业务当中。 特点:高速高效,低成本,应用广泛。


其他server:

MO_dispatcher: 用于短信上行接口的的数据转发,使用TCP。能高速大流量根据业务号码分发到各个应用服务中。目前用于SOHU短信到ChinaRen各短信服务的转发。 sync: 用于静态前端同步,分客户端和服务端程序。客户端通过TCP链接和服务端获取需要同步的文件列表,并且通过TCP高速更新本地文件。 此同步程序用于多客户端,单服务端。比如一台服务器生成静态文件,同步这些文件到若干客户前端去。 特点:门户级静态内容服务器间同步,高效,高速,大流量。目前用于ChinaRen社区的静态帖子。

总结一下:

门户的核心服务,要求是高效率,高密度存取,海量数据,最好还是低成本。不要用数据库,不要用java,不要用mswin。用C,用内存,用文件,用linux就对了。
分享到:
评论

相关推荐

    C/C++程序设计学习与实验系统

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据C程序多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示...

    Turbo C/C++ for Windows 集成实验与学习环境 7.0

    Turbo C/C++ for Windows 集成实验与学习环境是从事一线教学的大学教师团队根据C语言初学者的特点,量身定制的一个简单易用的C语言实验与学习软件,集成了高校C语言教学中使用最多两种编译器Visual C++ 6.0和Turbo C ...

    Visual C++ .net数据库开发经典案例解析

    (1) 本光盘是《Visual C++.NET数据库开发经典案例解析》的配套光盘,与图书一起发行,不得单独出售。 (2) 本光盘的主要内容包括各章示例程序的代码及数据库文件。光盘的说明文件为Readme.txt,即本文件。 (3) 示例...

    htcp(给C++代码添加html标记)

    如何你是一个喜欢在搜狐博客上发表C++技术贴的朋友,请往下看。 你是不是觉得直接将C++代码粘贴到博客上显得很不舒服,没有了已往的高亮显示,阅读代码变得很是费力,怎么样可能自动给代码加上相应的高亮显示,...

    Sohu门户运维那些事 pdf

    Sohu门户运维那些事 PDF,出自SOHU网络运营部-窦喆,电子书截图:http://www.codefans.net/upload/softimg/7/15757.gif 主讲内容:  一.SOHU运维管理的问题和挑战  二.SOHU基础设施建设  三.SOHU基础服务...

    基于python开发的检测网站死链程序

    基于python开发的检测网站死链程序 设计一个系统,自动完成对于手机搜狐(http://m.sohu.com/ )系统可靠性的检测。具体要求: 定时递归检测所有m.sohu.com域名的页面以及这些页面上的链接的可达性,即有没有出现不...

    连接到指定的网站程序(VB6.0源代码编写) If InternetCheckConnection("http://www.sohu.com/", 1, 0) = 0 Then

    连接到指定的网站程序(VB6.0源代码编写) If InternetCheckConnection("http://www.sohu.com/", 1, 0) = 0 Then MsgBox " 不能连接到 http://www.sohu.com/ ", vbInformation Else MsgBox " 已经连接到 ...

    自动注册SOHU用户小程序

    自动注册SOHU用户小程序(delphi)

    C语言爬虫 实现news.sohu.com的爬取以及依赖分析

    C语言爬虫 实现news.sohu.com的爬取以及依赖分析 北邮计算机应用编程实验

    Nginx模块源码 mod_strip

    NULL 博文链接:https://openplatform-sohu-com.iteye.com/blog/627522

    基于SMTP协议的邮件发送客户端程序设计说明书

    本着“理论联系实际,用理论指导实践”的学习方法,为了提高了同学间的团队精神,特成立兴趣小组(五人),并且选择简单邮件传输协议这一模块,进行理论上的总结,和程序上的实现。 通过对“基于SMTP协议的邮件发送...

    Word电子签名签章系统V1.2

     这是我学习ATL的成果,学习过程及程序的编写,前前后后共用了一个多月的时间,花了不少的心血。其间遇到了不少困难,终于都一一解决了。这要感谢www.csdn.net上的热心朋友,从他们的BLOG文章中,我获得了不少灵感...

    C++编程思想1 卷一

    C++编程思想1 kkynigu@sohu.com

    亿科影视管理系统 v1.2.0.rar

    系统集成主流播放器 Qvod GVOD 17bobo 迅雷 youku 土豆 56 新浪视频 QQ视频 sohu视频 6间房 Flv 流媒体等播放器 后台自由的播放器设置 强大的播前广告 幻灯随意修改添加 方便的友情连接管理 风格模板标签编辑 ...

    SOHU注册机SOHU注册机

    SOHU注册机SOHSOHU注册机U注册机SOHU注册机

    自动注册SOHU用户小程序.rar_注册用户_用户注册_自动注册_自动注册用户

    自动注册SOHU用户小程序

    嵌入式系统/ARM技术中的在MIPS开发板上建立Linux系统及开发环境

    作者Email: jie_yi@sohu.com ...没有操作系统,用户的使用就会受到很多限制,应用程序的开发、调试过程就会变得相当复杂。因此,建立合适的操作系统及开发环境,可以方便用户,简化开发调试过程。本文以RedHat Lin

    基于GIS的生态规划应用系统开发

    从基于MapObjects的组件式GIs应用软件的开发出发,介绍了GIS在生态规划与管理中的应用,并结合重庆市万州区生态规划决策支持系统的开发,对通过程序控制矢量图层的显示及编辑进行了简述,并进一步阐述绑定了属性数据...

    制作安装程序

    可能是九九年(也可能不准确)电脑爱好者>>上有一大篇关于它的文章,demo是由几个国外的多媒体高手合作完成的,最后经过了超超超高度的压缩,在不到六十四K的文件里装下了几分钟的仿3D动画,另外还有精美的音效.可以说这是...

Global site tag (gtag.js) - Google Analytics