-
在java下实现的xmpp开源实现,除了openfire外,tigase是另一个牛逼的项目。
-
实际的实验室压力下,50万人同时在线的单机,tigase的gc情况要优于openfire,而且openfire的网络层代码借鉴了不少tigase的。
下面的内容,在解剖tigase过程中所写,使用的版本是:5.2.1 (2014年7月份)。
组件
tigase就是一个大组件框,里面所有东西基本都是组件组成的。session manager、message router、c2s connection manager…全部是组件。
ServerComponent接口是一个最小化接口,但是要去写很多代码,tigase提供了许多的现成的代码,减少去从零实现这个接口的过程。
比如extends AbstractMessageReceiver可以直接生成一个处理消息的组件。只需要实现一个processPacket方法。实现getDefaults方法,可以对系统变量进行处理。实现setProperties方法,可以去设置一些要用的变量。
多线程
processPacket方法,可以把逻辑扔到不同的cpu上去运行,以发挥服务器多核的优势。processingThreads方法返回用多少个cpu来处理。
在重写processing