百度空间 | 百度首页 
               
 
文章列表
 
您正在查看 "jabber服务器" 分类下的文章

2009-01-07 22:18

喜欢memcached这样简单清晰的系统,但是底层服务的系统通常都要向功能屈服,总是要不断的打破原有的逻辑添加新的特性。

拿MySQL来说,比如mysql4就挺好的,只是为4条SQL语句服务。到了mysql 5身材发福了,也就跑不动了,功能特性一大堆,比如ndb cluster, partition等,尽管这些特性还没法用在生产环境,但从5.0到5.1的门槛跑了几年还没跨过去,虽然最近将Release Candidate变成GA版,但是业界还是抱着谨慎的态度,没人去急着当小白鼠。而且最近核心4条SQL语句的性能又被一个第三方的storage engine XtraDB 超越。自己不知道在忙什么的时候,核心功能却被别人超越,真够丢面子的了。

腾讯也有类似的问题,它一个致命的软肋就是非常担心用户一夜之间跟着一个更易用的第三方外挂跑了,但是他自己却无法提供用户友好体验的产品,于是就不断挥舞着手中的法律大棒在阻止各种创意,这种阻碍创新的方法实际上是一种行业倒退,所以目前的IM客户端产品设计依旧和10年前的ICQ惊人的一 致。

开源社区类似的案例很多,一个软件变得庞大之后就容易被对手打败,如 apache, sendmail, JBoss 等。XMPP Server目前相对来说还算健康,但也日趋庞大,比如Openfire目前的Java Source Code已经达到20万行。一方面受实现XEP扩展的诱惑,另外一方面也受商业化的诱惑,不断往服务器上增加周边服务的支持。这个我也不反对,Openfire在易用性和扩展性上确实比其他XMPP Server产品强很多。但另外一方面对核心层的重构代价可能会相当大,或者逐渐变成不可能的任务了。

技术人员通常有优化各种不够优雅的系统的冲动,或者经常想“如果重写……我会怎样做”,我今天也想如果要做一个非常精简的XMPP Server,我应该这样设计。


IM Server只做4个事情,处理对客户端的Roster, Presence, Message以及互联的S2S,其他都属于周边服务或者通过XMPP Component解决。

这个Server提供的功能比较简单,类似XP默认带的MSN Messenger那样少量的功能。

核心关注的指标:
  • 登录速度
  • 状态更改速度
  • 消息投递速度和可靠性
一些扩展的想法
  • 输出Presence的API, 可以是XMPP或HTTP
  • 可以embed, 象Berkeley DB一样,可以嵌入到各种应用。
  • 功能不够用则业务根据自己情况去扩展,就象mysql一样,不应该提供stored procedure和trigger
  • 想到了再补充

类别:jabber服务器 | 评论(4) | 浏览()
 
2008-10-23 21:18
CouchDB是一种分布式的文档数据库,最近获得了不少关注。它的特点有:
  • 使用RESTful HTTP API来访问,不用SQL;
  • 无须定义字段,不需要建表,确定字段。Document就是个JSON包,里面什么都可以存。
  • 由于用HTTP访问,可以用任意语言来操作。用得最多的是JavaScript,当然也支持Java, Python, Ruby, PHP, Perl...甚至用linux shell, 见后文 curl 示例
  • 具备Replication功能,增量复制。
  • Map/Reduce views
  • 和传统的RDBMS很不一样,它需要通过Document ID来访问,我倒觉得更倾向作为一个cache服务器(或者是Map)来理解它。但是和Cache又不一样,它是可以持久的,分布的(memcached实际是单机孤立的),有版本的
  • ACID/MVCC。
那我们在IM或社区类产品中经常要用到用户设置头像,个人秀等业务。这个业务通常会用文件系统来实现。对于一个小型系统,只要做一个web upload程序,接收用户上传图片,然后按一定规则存在一个对外的web目录即可。那如果一台服务器不够,可以做多个Web负载均衡。这又牵涉到图片文件到多个服务器同步的流程。有同步就会有不一致,所以方案往往就会变得复杂。
  • 上传,修改用户头像: 使用HTTP PUT,JavaScript, curl -X PUT http://server/avatar/uid -d '{}'
  • 获取: JavaScript Get然后使用JSON数据显示用户图片 curl http://server/avatar/uid
  • 由于服务器保存所有修改的版本,很容易实现浏览和恢复用户旧的历史图片的功能,而不会象QQ/MSN那样换个新的,老的马上被冲掉。
  • 纯Web用JavaScript或Flash访问, IM客户端可用C++访问。
  • 服务器仅需要配置权限,无须编程工作。
CouchDB目前也并非十全十美。目前推荐的成熟模式是1个master+n replication for read. 对于大型系统需要将数据partition到数个服务器的功能目前仍在开发。但是可以通过类似memcached client的做法根据key不同选择不同的服务器。这方面的内容可参看 ConfiguringDistributedSystems

类别:jabber服务器 | 评论(12) | 浏览()
 
2007-03-31 23:46
在 javaeye 看到一篇文章
http://www.javaeye.com/topic/15122?page=1

楼主说有个5千万每天的服务,担心RMI不行,想用hessian怎么样。结果得到了4页悲观的回复。
换算出来的要求是满足600次/s,这是算比较轻的负荷了。用普通的服务器+RMI再大5倍的请求都可满足。一般人我不告诉他。:)

4/4 补充测试结果:
经过测试,hessian的速度可以达到 tomcat/resin 的请求速度上限。在 tomcat 5k/s, 在resin下面hello world简单调用达到8k/s,但调用参数增加速度会下降。
类别:jabber服务器 | 评论(6) | 浏览()
 
2007-03-31 23:30
最近有个做网络服务器的朋友新的产品是基于ICE架构的,向我极力推荐。初步看了一下
感觉和RMI比较没什么优势(哈哈,就是对新东西有点排斥心理)。ICE和RMI原理都是RPC,而且ICE的目的主要是CORBA的一个替代,也就是说长处是异构环境,如果代码都用100% java来实现ICE不一定适合,速度也未必会比rmi方式快。
下一步还是要写程序比较一下。

如果要考虑C++与JAVA互通倒是一个快速的RPC framework。

Reference:
ICE (Internet Communications Engine) http://www.zeroc.com/download.html
RMI (Remote Method Invocation), http://java.sun.com/javase/technologies/core/basic/rmi/index.jsp
类别:jabber服务器 | 评论(0) | 浏览()
 
2006-10-04 14:11
本文来源 http://hi.baidu.com/jabber

1. Openfire (Wildfire) 3.x
授权: GPL or 商用
操作系统平台:所有(使用Java开发)
XMPP Jabber 协议实现情况:98%
Tim 评价:
安装和使用非常简单,安装后进入Web界面进行2~3分钟的配置所有的东西都设好了。使用Java语言开发,在目前Java开发人员到处普及的情况下进行维护和扩展的成本非常低。在我的测试中加上 Connection Manager 的情况下单台服务器可支持 30 万并发用户。缺点是目前还不支持cluster。如果企业内部部署IM使用 Wildfire + Spark 是最佳的组合。
见:http://hi.baidu.com/jabber/blog/category/Wildfire

2. ejabberd
授权: GPL
操作系统平台:Linux, Windows, MacOS X 等
XMPP Jabber 协议实现情况:91%
Tim 评价:
Ejabberd目前是可扩展性最好的一种Jabber/XMPP服务器,支持分布多个服务器,并且具有容错处理,单台服务器失效不影响整个cluster运作。
顾虑就是它采用一种大家都没听过的语言Erlang开发,所以很多人可能会象我一样因为这个原因放弃了它。

3. Jabberd 2.x
授权: GPL
操作系统平台:主要是 Linux, (Windows 也支持,但不知道性能怎样)
XMPP Jabber 协议实现情况:76%
Tim 评价:
自从jabber.org改用ejabberd之后,Jabberd一直都在走下坡路。扩展性比不上ejabberd, 易用性比不上 Wildfire,唯一的优势是使用C开发,如果你坚持要用C开发,那么还是选择jabberd吧。

4. Jabberd 1.x
授权: GPL
操作系统平台:主要是 Linux, (Windows 也支持,但不知道性能怎样)
XMPP Jabber 协议实现情况:45%
Tim 评价:
在几年前 jabberd 就是 Jabber 的代名词,至今很多 Jabber 文档仍然介绍的是 Jabber 1.4,
在我以前写的《Jabber 服务器占有率比较》中仍然排名第一。但是它很多新的规范都不支持,相信大部分用户都将转向新的服务器。
见:http://hi.baidu.com/jabber/blog/item/7d25bb199f31a44542a9ad02.html

5. 后起之秀 DJabberd
授权: open source
操作系统平台:主要是 Linux, (Perl写的,其他平台应该也支持)
XMPP Jabber 协议实现情况:N/A
Tim 评价:
djabberd 使用 epoll 技术,理论上单台服务器可以支持更多用户。Djabberd目前主要应用在LiveJournal上,大部分XMPP协议都支持,稳定性也不用置疑。但是因为推出时间尚短,很多细节功能可能需要时间慢慢完善。
djabberd介绍见:http://hi.baidu.com/jabber/blog/category/Djabberd

参考资源:
http://www.jabber.org/software/servers.shtml

常用开源Jabber(XMPP) IM服务器介绍
Jabber IM 服务器占有率比较
Openfire (Wildfire)已经完成开发 JEP-0124 Jabber XMPP扩展协议
Openfire (Wildfire) Connection Manager 安装配置简介
Openfire (Wildfire) Connnection Manager 协议分析
Openfire (Wildfire) 的最新特性, 基于 Mina 的 Connection Manager


查看作者更多即时通讯文章:http://hi.baidu.com/jabber
类别:jabber服务器 | 评论(26) | 浏览()
 
2006-08-16 18:56
有个 Florian 的人简单测试了一下 Jabber 服务器软件的情况,他通过给他 jabber.ccc.de 服务器 log 上有 s2s 的服务器记录作为目标,向这些主机发送 jabber:iq:version 查询,在他的 log 上一共有 542 个主机,得出的结果如下:

 jabberd1 => 168
 ejabberd => 109
 jabberd2 => 78
 unknown => 64
 Wildfire => 49
 jsm => 20 (I guess this is pre-1.4.3 jabberd1)
 MSN Transport => 13
 ICQ Transport => 12
 AIM Transport => 5
 Yahoo! Transport => 5
 JIT => 4
 MU-Conference => 2
 Jive Messenger => 2
 XMPPPY Yahoo! Transport (Dev) => 2
 dotJ => 1
 XCP => 1
 SMS - Transport => 1
 ejabberd mod_proxy65 (unofficial) => 1
 RSS component => 1
 Jobble transport => 1
 psyced => 1
 Gadu-Gadu Transport => 1

结果是 jabberd 1.4.3 最受欢迎获得 115 个返回结果,
ejabberd 1.1.1 47个 + ejabberd 1.1.0  40个.

操作系统使用最多的是 Linux 2.6, 171 replies, 然后是 Linux/unknown and Linux 2.4.

Most "outdated" versions were ejabberd 0.7.5 and jsm 1.1.3.

Using just the public jabber-servers reveals pretty much the same, the
single interesting difference is that Wildfire is only used twice
within 117 servers.

以上文章翻译自Jabber的邮件列表(by Tim Yang),发布者是 Florian, Jabber ID: fh@mabber.de

类别:jabber服务器 | 评论(0) | 浏览()
 
     
 
 
文章分类
 
 
Jep(11)
 
Xmpp(21)
 
 
 
 
 
Mysql(10)
 
 
 
 
 
 
 
 
Xep(1)
 
 
     
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   
 

这个屌,谁都骂
 

回复匿名网友:java -Xmx 1024m
 
 

占用贵博客。宣传一下http://Google.wavebbs.cn
 
     


©2009 Baidu