即时通讯学习笔记003---Tigase代码框架解读
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代码框架解读相关推荐
- 即时通讯学习笔记002---xmpp基本概念
JAVA技术交流QQ群:170933152 概述 XMPP是一个开放式的XML协议,设计用于准实时消息和出席信息以及请求-响应服务. 通用的架构 通常采用客户端服务器架构进行实现,其中客户端通过TCP ...
- 即时通讯学习笔记001---XMPP了解认知
JAVA技术交流QQ群:170933152 XMPP 简单介绍 本小节将简要介绍 XMPP,它的起源.以及为何它是一个适合实时 web 通信的协议.您将检查 XMPP 通信设置的组件,并查看展示这些组 ...
- 即时通讯学习笔记006---认识学习OpenFire服务器用的加密算法Blowfish_以及用java实现Blowfish算法
这个算法: 有个在线工具,可以进行加密解密 http://tool.chacuo.net/cryptblowfish 个人认为目前比较安全的加密算法:Blowfish. 上代码之前,先说几点Blowf ...
- 即时通讯学习笔记004---即时通讯服务器种类认知
JAVA技术交流QQ群:170933152 业界有很多优秀的开源XMPP服务器,比如eJabberd.Openfire.Tigase.Jabberd2.Prosody,还有一些优秀的商业XMPP服务器 ...
- 即时通讯学习笔记007---在windows下安装openfire_并且使用自定义的数据库这里用mysql
这是我装的记录一下: 去官网下载,然后: 点击exe安装: 点击继续 点击继续 这里配置自己的数据库
- 即时通讯学习笔记005---在windows中安装OpenFire服务器即时通讯服务器_使用OpenFire内置数据库
大体上是下面的安装过程,但是我本地装的版本高,所以 把我安装时候的过程截图下来: 安装exe文件以后,会自动弹出,这个页面,如果没有的话: http://localhost:9090/setup/in ...
- 设计模式学习笔记——状态(State)模式框架
设计模式学习笔记--状态(State)模式框架 @(设计模式)[设计模式, 状态模式, State] 设计模式学习笔记状态State模式框架 基本介绍 状态案例 类图 实现代码 State接口 Day ...
- 【学习笔记】低代码平台(LCAP:Low-Code Application Platform)
学习笔记:低代码平台(LCAP:Low-Code Application Platform) [概念] 开发者写很少的代码,通过低代码平台提供的界面.逻辑.对象.流程等可视化编排工具来完成大量的开发工 ...
- 吴恩达《机器学习》学习笔记十一——神经网络代码
吴恩达<机器学习>学习笔记十一--神经网络代码 数据准备 神经网络结构与代价函数· 初始化设置 反向传播算法 训练网络与验证 课程链接:https://www.bilibili.com/v ...
最新文章
- Blender三维建筑场景动画制作学习教程
- C# winform打印总结 z
- Maven整合SSM测试
- 设计模式-行为-职责链
- Solr操作中新手常见问题
- Mac OS使用技巧之二:修改变量Path解决android: command not found
- 为or、in平反——or、in到底能不能利用索引?
- js正则 匹配 正则表达式
- 基础编程题之因数分解
- 华为ensp的缺省_网络 华为 ensp 命令
- matlab三重积分计算方法,一般区域二重、三重积分MATLAB计算方法
- php jquery 时间轴,关于jQuery插件Timelinr 实现时间轴特效
- php常用抽奖概率算法(抽奖,大转盘,广告首选)
- html查看蛋白质,怎么查询蛋白质的全部信息-- UniProKB数据库
- LMK04828时钟芯片配置——配置理解
- 如何调用openai
- U盘文件全部变成只读模式的解决办法
- 用java实现文学研究助手_数据结构文学研究助手 C语言代码实现(带源码+解析)...
- linux小红帽实验心得,小红帽读书心得(精选4篇)
- 印度软件,告诉我们什么?(转)