开源服务器openfire研究之开篇

研究目标:

1. 源代码结构;

2. 插件开发;

3. 性能评测;

 

简要介绍:

  Openfire是一款据官网说性能优异的开源服务器,到底性能咋样各说纷纭,但作为一个开源的服务器,应该算很不错了。如果商用还是可以的,因为是Apach的许可,所以也不存在版权的纠纷。

  Openfire是为IM即时消息系统设计的服务器,简单的说就是类似QQ后台服务,但是其是基于XMPP协议的,例如谷歌的gTalk就是基于XMPP协议的。XMPP协议就是一套即时通信协议,对于使用者来说,加上spark,就可简要实现QQ的功能了。可聊天、加好友,甚至可以语音通信,支持sip视频会议协议。

  Openfire是服务端,有三种主流系统的版本,官网:http://www.igniterealtime.org/

  Spark是Java开发的客户端,也是开源的,类似QQ;

  还有一个smack,就是XMPP协议栈的实现封装;

  上面说的都是java,难怪现在java这么好找工作。。。

  如果要用Openfire做服务端,但是客户端又不限于java,咋办?没问题,有xmpp协议在,自己实现一边客户端的代码就OK了,当然,除非你或者你的boss相当有抱负,不然不会出现这样的情况。那么自己去网上搜索XMPP客户端开源代码吧,这就是采用标准协议的好处。。。我用过gloox,纯粹C++实现的源码XMPP客户端,对外暴露的接口为纯虚类,自己实现方法就可以了。

  好了,扯淡了那么多,不知道你的源码下载好了木有。。。

  估计还有几分钟,简要介绍下Openfire里面比较重要的一些东西:

(1) Apach MINA

  一款开源网络应用程序框架,简单来说就是开源通信框架。MINA就是为了高并发高性能而生的,这也就是为什么Openfire敢对外说性能优异的原因。

(2) Plugin

  用Openfire做二次开发时,就会深刻体会某种设计思想——对修改封闭,对扩展开放。所以如果做二次开发,一定记得,尽量不要改别人的源码。你所做的工作仅仅是做一个Plugin插件而已。当然,为了强大openfire的性能,也会有很多官方插件给出,例如扩展用户连接容量的连接管理等。

(3) 多数据库支持

  有外部数据库,还有简单小巧的内存数据库,第一次安装时会提示你选择;

(4) 集群

  Openfire里面有C2S、S2S多种连接,可有效实现多服务器的集群;然后再在这个基础上即可实现负责均衡等实际需求;

 代码下载完成后:

  如果有eclipse,直接打开,核心代码都在src/java下面,然后基本就是Plugin插件了;

  注意有个target文件夹,下面有个bin目录,也就是生成的可执行程序,那么bat文件就可运行了,按照提示的网址,进去初始化设置;

  在弄个Spark就可以简单使用了。

  关于扩展性,不得不说很不错,接下来一起学习吧。

 

你可能感兴趣的:(开源服务器)