日志分类:it

IM系统构架技术纲要

2009/09/27 1:56 下午  |  分类:it

某天帮一个老同学做得技术架构作业,做得好烂,差不多2个月了,应该过保密,晒晒稿子

IM系统构架技术纲要

2009-8-4

1     IM工程的概述… 1

2     服务器建设… 1

2.1     认证、计费服务器… 2

2.2     数据库服务器… 2

2.3     文件存储服务器… 2

2.4     通信服务器… 2

2.5     第三方IM信息转发服务器… 2

2.6     地区服务器… 2

3     网络构架… 2

4     客户端设计… 3

4.1     WINDOWS客户端… 3

4.2     Java客户端… 3

4.3     手机客户端、… 3

4.4     Web客户端… 3

1       IM工程的概述

网络即时通讯工具Instant Messaging,简称IM。他的组成分为服务器、网络、客户端这三部分。

目前国内外有多种IM商业产品如ICQ、MSN、QQ等,在设计IM项目的时候,除完善自建IM网络的通信,而且也要考虑到和其他IM产品的互联互通。

IM的技术架构目前已经较完善,成熟的开源项目可以参考jabber,服务器端部分和客户端部分都分别有商业产品和免费产品。

2       服务器建设

通信的传播是由“客户端A>服务器>客户端B”,不是直接的“客户端A->客户端B”。服务器之间可以进行分布式分布,例如在城市C和城市D分别架设服务器,那么传播路径就变为“客户端A>服务器C>服务器D>客户端B”。这样的设计可以根据业务量和网络情况架设服务器。

一般在中心城市建立主服务器群组,负责登录认证、数据存储记录、文件存储、计费认证等服务,根据业务量,在不同的城市或者不同的带宽接入区域建设地区服务器,负责当地的通信和数据转发。

主服务器群组由以下功能的服务器组成:

2.1    认证、计费服务器

负责认证用户登录,记录用户的个人信息、帐户密码、交易信息,一般只建一个认证中心不作分布式设计。

2.2    数据库服务器

记录用户数据,聊天历史记录,登录记录,计费记录等数据。

2.3    文件存储服务器

存储用户上传下载的文件,作为增值业务提供。

2.4    通信服务器

负责用户的消息通信处理。

2.5    第三方IM信息转发服务器

兼容第三方IM通信的转发服务器,当用户有第三方IM通信时,由该服务器与其他IM供应商的服务器通信。

2.6    地区服务器

作为通信服务器使用,与主服务器群组通信。

3       网络构架

如果该地区网络情况单一,只有一家网络供应商提供,那么只需要在该地区的中心城市架建主服务器群组,然后根据业务量,在不同的地区增设通信服务器。

如果该地区网络情况复杂,存在多种不同的ISP接入服务,则需要在做多人使用的ISP处选择一个中心建主服务器群组,在不同的ISP接入商建通信服务器,并保证他们之间的线路畅通。

服务器的多少是和运营的负荷用户数量和网络质量网络分布情况相关。原则是保证通信畅通。

4       客户端设计

Jabber项目已经有不少成熟的客户端设计共参考,主要有这几类:

4.1    WINDOWS客户端

主要用C、VB等语言编写,windows的用户基数最大,所以一般兼容性必须在windows平台上做得最好

4.2    Java客户端

主要是服务非windows的用户,如linux、Apple、某些户外设备。

4.3    手机客户端、

根据手机平台又分为windows mobile、j2ee、linux、iphone、symbian、等

4.4    Web客户端

5       预算

名称

数量

单价

小计

硬件投入

计费服务器

1

15000

15000

数据库服务器

1

20000

20000

通信服务器

1

15000

15000

文件存储服务器

1

15000

15000

第三方IM接口服务器

1

15000

15000

地区服务器

3

15000

45000

交换机

1

10000

10000

网络投入

机架(1年)

1

24000

24000

带宽10Mpds(1年)

1

24000

24000

地区服务器接入

3

3000

9000

开发成本

服务端开发调试

1

200000

200000

客户端开发调试

1

50000

50000

总计

442000

zimbra升级日记

2009/07/16 5:58 下午  |  分类:it

用了N久的zimbra 5.0.4升级到5.0.18,当中真多曲折。

先说说升级流程

  1. /etc/init.d/zimbra stop
  2. rsync /opt/zimbra /mnt/backuppath
  3. wget -c http://where.to.download.zimbra
  4. tar xzvf zimbra.tgz
  5. ./install.sh
  6. so many enter and wait many mins
  7. done

其中最为麻烦的是跑了install.sh脚本后,会提示“ERROR: Installation can not proceeed.  Please fix your /etc/hosts file   to contain:”。搞了半天,孩子zimbra看了一堆贴关于这个hosts问题的说法,没辙了,只好发了个贴问。

以前zimbra的管理员帮助非常热心非常热气,但是现在。我觉得这版主是吃了火药还是更被绩效考核了似的,一副大便脸,回帖也凶巴巴的在质疑我没仔细阅读安装说明、mei在论坛、wiki找答案,没写清楚配置情况和安装日志报错内容。

冤啊,比邓玉娇还冤。只好有自己仔细琢磨,终于发现一个贴。原来这个zimbra的安装脚本会对hosts每行都校验,多一行不行,少一行不行。

他规定了:

  • 必须有127.0.0.1 localhost.domain localhost这行
  • 必须有ip 完整域名 机器名这行
  • 其他的必须删除(这个并没有在安装教程里面提及过

于是删除了hosts里面的其他内容,顺利的安装。还得一副感激的样子对大便脸zimbra版主say thx。

很是不爽,于是我还友善的补充了一句,希望zimbra能在安装说明里面写清楚:“hosts里面必须不能多不能少的只写两行”

恩,我的马来西亚游记很有太监掉的趋势!不少群众纷纷来电要求看续集,甚至有通过google找到我msn和我交流自助游心得的网友。

在此,小小的为本博客的seo偷笑一个,想不到wp的这种域名/年/月/标题的url,非常合google的胃口,现在在google上查询 “马来西亚游记”就能 找到这里了,还有邪恶的关键字“3飞”,也指向被博客,有兴趣的同学可以看看本站的“3飞”是什么暴力内容。

再如关键字“he110”,我只是为了好玩,把“hello world”改写成“he110”,结果google一下“he110”,本博还是蛮前列的,再偷笑一把。

游记,还是会继续写的,目前比较困惑的是我不希望在dreamhost里面做主相册,找个好相册还是非常有必要的,要能转载、稳定、不被墙。flickr大神估计我是无法膜拜了,picasa的命运也是坎坷,迷惑啊。

除了已经过去的马来西亚游记,7月5日还终于构想了几个月的imax之旅实行了。一行将近30人浩浩荡荡的到东莞看了一把imax版本的《变形金刚2》,肉眼被4层楼高的imax荧幕震撼的踏踏实实。就是变2的太少高速慢镜头,老是正常速度的近镜头看得有点头晕,等半年后看蓝光版本的再仔细回味。

我们的矮南瓜泡沫网站迎来了09年的一波新人,今天特地为他们做了一次培训,想想我当年(快2年了)入职的时候,还没有这样的待遇,祖国的未来们真幸福啊。

对了,矮南瓜泡沫的seo也如本博一样诡异,特别是在最近众多门事件发生的带动下,7月3日迎来了一次淋漓的高潮,希望日后高潮迭起~10年后再纪念,网站大事记上有这浓重的一笔——7月3日,美国独立日前一天,乃众神之门大开,矮南瓜泡沫高潮迭起的总开端。

最近几天要研究ppc上的gps,要上一堆论坛找软件什么的,被迫注册了N多的账号,有些约莫有印象的论坛就输个习惯账号也就登陆了,可能是几年前我累计的注册资源。

可能这样,日后国内的论坛都要注册登陆才能看任何一个字,但我也不怕,因为我经过几十年的注册(等我老了),国内大部分论坛我都注册了。

其实搞这么负责干嘛呢?东西要注册才能看,我就注册咯,也不难,但是为何要麻烦我呢,我注册后就看到了,你想要我的帐户还是密码还是email?ok,你要我的email好向我发垃圾邮件,这个年头谁没防垃圾邮件的板斧啊。

你要我回复才能看到隐藏贴,ok,我就回复,既然要我注册,我也认栽了,回帖也就多一个步骤,回了我也能看到东西了,我继续认栽又如何呢,反正东西到手了。

很好,你要回帖不单,而且新用户要24小时后才能发帖,ok,我明天这个时候再弄,反正我不缺时间,你想赶我走,没门。

我暴怒了,还要积分才能看,ok,你赶我走的办法很高超,我暂时没办法了,我只好找别的论坛了。

以上大概是大陆的用户都会碰到过,无非就是论坛们希望能用资源留住人,在制造诸多的关卡,其实也就是在赶跑用户。

反正,想要留住我,还得花大力气。

或者我是要为自己想不劳而获感到惭愧了。ok,我惭愧一下。

以讹传讹的技术文档 about nginx log

2009/04/04 12:33 上午  |  分类:it

网上其实大部分的技术文档都是你炒我我炒你,互相抄袭,犯错扎堆,就算发现了也很难从google、baidu的错误数据中把正确的答案挣扎出来。

只要你用搜索引擎搜nginx、日志分析、awstat这几个关键词,就会搜到几乎是同一篇的文章,洋洋洒洒几千字把用awstat分析nginx日志的方法描述下来,不少新用nginx的人可能就这样掉下了一个坑。

这坑是如此这般的~~~~

nginx.conf有一段定义日志格式的,上面写的是:
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

出来的日志会是这样:
58.35.169.100 - - [31/Jan/2009:23:59:24 +0800] GET /enews/ HTTP/1.1 "302" 18298 "http://www.xxx.com/yyy/111" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; MAXTHON 2.0)" "-"

而事实上,正确的应该是这样:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

出来的日志才会是正常的apache格式
58.35.169.100 - - [31/Jan/2009:23:59:24 +0800] “GET /enews/ HTTP/1.1” 302 18298 "http://www.xxx.com/yyy/111" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; MAXTHON 2.0)" "-"

好了,为此要对千万行日志批量处理,tmd!!!就为了一对站错位置的双引号,希望日后用nginx的人都栽到这个坑里面去!

对了,我发这篇博文会被人搜索到么?我是不是要seo一下。

Pages: 1 2 3 4 Next