JAVA技术交流QQ群:170933152

  • 在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来处理。

在重写processingThreads的同时,需要重写hashCodeForPacket方法,确保同一个用户的数据,在同一个cpu上处理,以确保不出现消

即时通讯学习笔记003---Tigase代码框架解读相关推荐

  1. 即时通讯学习笔记002---xmpp基本概念

    JAVA技术交流QQ群:170933152 概述 XMPP是一个开放式的XML协议,设计用于准实时消息和出席信息以及请求-响应服务. 通用的架构 通常采用客户端服务器架构进行实现,其中客户端通过TCP ...

  2. 即时通讯学习笔记001---XMPP了解认知

    JAVA技术交流QQ群:170933152 XMPP 简单介绍 本小节将简要介绍 XMPP,它的起源.以及为何它是一个适合实时 web 通信的协议.您将检查 XMPP 通信设置的组件,并查看展示这些组 ...

  3. 即时通讯学习笔记006---认识学习OpenFire服务器用的加密算法Blowfish_以及用java实现Blowfish算法

    这个算法: 有个在线工具,可以进行加密解密 http://tool.chacuo.net/cryptblowfish 个人认为目前比较安全的加密算法:Blowfish. 上代码之前,先说几点Blowf ...

  4. 即时通讯学习笔记004---即时通讯服务器种类认知

    JAVA技术交流QQ群:170933152 业界有很多优秀的开源XMPP服务器,比如eJabberd.Openfire.Tigase.Jabberd2.Prosody,还有一些优秀的商业XMPP服务器 ...

  5. 即时通讯学习笔记007---在windows下安装openfire_并且使用自定义的数据库这里用mysql

    这是我装的记录一下: 去官网下载,然后: 点击exe安装: 点击继续 点击继续 这里配置自己的数据库

  6. 即时通讯学习笔记005---在windows中安装OpenFire服务器即时通讯服务器_使用OpenFire内置数据库

    大体上是下面的安装过程,但是我本地装的版本高,所以 把我安装时候的过程截图下来: 安装exe文件以后,会自动弹出,这个页面,如果没有的话: http://localhost:9090/setup/in ...

  7. 设计模式学习笔记——状态(State)模式框架

    设计模式学习笔记--状态(State)模式框架 @(设计模式)[设计模式, 状态模式, State] 设计模式学习笔记状态State模式框架 基本介绍 状态案例 类图 实现代码 State接口 Day ...

  8. 【学习笔记】低代码平台(LCAP:Low-Code Application Platform)

    学习笔记:低代码平台(LCAP:Low-Code Application Platform) [概念] 开发者写很少的代码,通过低代码平台提供的界面.逻辑.对象.流程等可视化编排工具来完成大量的开发工 ...

  9. 吴恩达《机器学习》学习笔记十一——神经网络代码

    吴恩达<机器学习>学习笔记十一--神经网络代码 数据准备 神经网络结构与代价函数· 初始化设置 反向传播算法 训练网络与验证 课程链接:https://www.bilibili.com/v ...

最新文章

  1. Blender三维建筑场景动画制作学习教程
  2. C# winform打印总结 z
  3. Maven整合SSM测试
  4. 设计模式-行为-职责链
  5. Solr操作中新手常见问题
  6. Mac OS使用技巧之二:修改变量Path解决android: command not found
  7. 为or、in平反——or、in到底能不能利用索引?
  8. js正则 匹配 正则表达式
  9. 基础编程题之因数分解
  10. 华为ensp的缺省_网络 华为 ensp 命令
  11. matlab三重积分计算方法,一般区域二重、三重积分MATLAB计算方法
  12. php jquery 时间轴,关于jQuery插件Timelinr 实现时间轴特效
  13. php常用抽奖概率算法(抽奖,大转盘,广告首选)
  14. html查看蛋白质,怎么查询蛋白质的全部信息-- UniProKB数据库
  15. LMK04828时钟芯片配置——配置理解
  16. 如何调用openai
  17. U盘文件全部变成只读模式的解决办法
  18. 用java实现文学研究助手_数据结构文学研究助手 C语言代码实现(带源码+解析)...
  19. linux小红帽实验心得,小红帽读书心得(精选4篇)
  20. 印度软件,告诉我们什么?(转)

热门文章

  1. 图像算法七:【形态学图像处理】二值运算、膨胀、腐蚀
  2. Python 字符串、列表、字典 操作方法大全 正则re
  3. 【Zabbix】Zabbix触发器的告警原理及创建方法
  4. 域渗透——Local Administrator Password Solution
  5. lambda方法引用总结——烧脑吃透
  6. JavaScript深入之从原型到原型链
  7. iptables用法简介
  8. C# WinForm WebBrowser (三) 编辑模式
  9. hotplug,automount与mdev的调试
  10. 程序设计 关键字解释