`

Openfire 性能调优和集群方案

 
阅读更多

Openfire 性能调优和集群方案

 

Openfire 是使用JAVA并基于MINA框架实现的XMPP服务端程序,所以基本的性能调优主要集中在 系统、JVM 这两层; 主要的指标也是并发用户数和消息投递成功率和耗时 。

 

建议: 如果你的产品目标是在线用户超过100K,那么最好早点考虑openfire之外的其他XMPP实现吧,比如 ejabberd ? 等等,erlang比java更适合做并发。  总的用户量多少不会是大问题,你可以通过分片等来解决,但在线用户和并发消息的处理能力,需要考虑多种不同方案。

 

关于这个部分,推荐一篇博文:

Openfire 性能优化 

http://blog.csdn.net/smm11230704/article/details/7468010 

 

 

Openfire集群方案

 

Connection Manager  http://www.igniterealtime.org/projects/openfire/connection_manager.jsp

实际上CM并不是一个集群方案,只是openfire官方提供的一个用来扩展openfire连接能力的工具;

CM 项目由 Guus(http://community.igniterealtime.org/people/Guus) 负责,官方数据表示一个CM可以连接至少5K个客户端,CM主要负责建立和维护与客户端之间的连接,其他业务逻辑处理都由后面的openfire完成,二者之间会维持会话;一个Openfire可以连接多个CM ,从而提高在线用户数。

 

但我个人的问题是如果你无法预测连接到CM1上的用户与连接到CM2上的用户发送消息的频率,那么这个CM的作用还是非常有限的,相当于登陆上QQ了,但发消息很慢,当在线用户多的时候。

 

Oracle Coherence / clustering plugin 

http://www.igniterealtime.org/projects/openfire/plugins/clustering/readme.html 

这个是最早也是官方一直在维护的集群插件,基于分布式内存共享模型,所以使用了Coherence,因为版权以及其他各方面的问题,此插件已经从 3.7版本后开始被放弃了。实践中很多人也是使用这个插件,其实我个人觉得此插件带来的性能增长并不会非常显著,也无法做大大量的结点扩展。

 

Terracotta http://terracotta.org/ 

这是一个比较通用的分布式内存共享项目(Terracotta本身是解决实时大数据分析的),有一些人用来支持openfire的集群扩展,但门框较高,不是被推荐的方案之一。

 

Hazelcast   http://community.igniterealtime.org/message/224947 

这个是目前比较火的一个插件,很多人在尝试使用,性能未知,请参考上述链接。

 

open-clustering https://code.google.com/p/open-clustering/ 

这是一个典型的插件项目,干净整洁,只要放入plugins目录即可,在后台做基本设置就可以开启集群功能。项目的目标是“To provide a complete open source clustering plugin for Openfire with no dependecies on Oracle Coherence or any other closed component” 。  值得去尝试,但性能依然未知。

 

zkfire  https://code.google.com/p/zkfire/   

这是一个作者实验性的项目,借用zookeeper 来实现的集群方案,有待进一步验证。

 

 

 参考:

 

JGroups, Terracotta & Hazelcast

http://stackoverflow.com/questions/11404688/jgroups-terracotta-hazelcast

 

Hazelcast Performance vs MongoDB, Cassandra, Terracotta and Oracle Coherence

http://www.hazelcast.com/resources/hazelcast-performance-vs-mongodb-cassandra-terracotta-and-oracle-coherence/ 

分享到:
评论

相关推荐

    openfire集群用到的 Oracle Coherence

    Oracle Coherence 是一款由甲骨文公司开发的分布式数据网格解决方案,主要应用于企业级应用的高性能缓存和数据共享。在openfire集群中,Oracle Coherence扮演着关键角色,为集群提供高效的数据共享和一致性保证,...

    XMPP服务器的性能分析跟优化.docx

    8. **代码优化**:针对热点代码进行性能调优,减少不必要的计算和资源消耗。 综上所述,Openfire和Tigase作为XMPP服务器各有优势,选择哪种取决于具体需求和业务规模。性能优化是一个持续的过程,需要综合考虑硬件...

    Spark 2.6.3

    4. **MLlib**:Spark的机器学习库MLlib包含各种常用的机器学习算法和实用工具,如分类、回归、聚类、协同过滤等,同时提供了模型评估和调优的功能。 5. **GraphX**:用于图计算,GraphX提供了一个API来创建和操作...

    Java 学习内容和先后顺序.txt

    java 学习 Java 可以按照以下的步骤和内容进行,这样可以帮助你系统地掌握这门语言,并为进一步的学习打下坚实的基础。以下是建议的学习路径: 1. **Java 基础知识** - 了解 Java 的历史和它为什么被创建。 - 安装 JDK(Java Development Kit)和设置环境变量。 - 学习如何编写、编译和运行第一个 Java 程序。 - 掌握基本语法:变量、数据类型、运算符等。 2. **控制流程语句** - 学习条件语句(if-else, switch)。 - 循环结构(for, while, do-while)。 - 控制循环执行(break, continue)。 3. **面向对象编程基础** - 类与对象的概念。 - 方法和属性。 - 构造函数。 - 封装、继承、多态和抽象的基本概念。 4. **深入面向对象编程** - 抽象类和接口的区别及使用场景。 - 包和访问修饰符。 - 异常处理机制(try-catch-finally, 自定义异常)。 5. **集合框

    【编码解码】基于matlab罗利衰落信道编解码器设计【含Matlab源码 9930期】.mp4

    海神之光上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    测试上传时间时间,发布时间是否等于公布时间

    测试上传时间时间,发布时间是否等于公布时间

    基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明

    【资源介绍】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,也可以作为小白实战演练和初期项目立项演示的重要参考借鉴资料。 3、本资源作为“学习资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研和多多调试实践。 基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明.zip 基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明.zip 基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明.zip 基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明.zip 基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明.zip 基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明.zip 基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明.zip 基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明.zip 基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明.zip 基于卷积神经网络(CNN)和CIFAR10数据集的图像智能分类 Web 应用新版源码+说明.zip

    【Python毕设】p103基于Flask的豆瓣电影情感分析推荐系统-spider+vue.zip

    python3.8+flask+spider+mysql5.7+vue 基于Python的豆瓣电影NLP情感分析与协同过滤算法结合的推荐系统,旨在为用户提供个性化的电影推荐服务。该系统首先利用自然语言处理(NLP)技术对豆瓣电影评论进行情感分析,从中提取用户对电影的情感倾向,进而为后续的推荐算法提供更为丰富的用户偏好信息。 系统的核心模块包括数据采集、情感分析、用户画像构建和推荐算法实现。通过爬虫技术获取豆瓣电影及其评论数据,使用Python的NLP库(如NLTK和spaCy)进行情感分类和词频分析,构建用户情感画像。基于这些画像,结合协同过滤算法(包括基于用户和基于物品的推荐方法),实现高效的电影推荐。实验结果表明,采用情感分析的推荐系统相较于传统基于评分的推荐系统,能够显著提高用户的满意度和推荐准确率。

    基于协同过滤推荐算法的音乐推荐系统:Python+Django开发,SQLite数据库支持,MVC框架构建,解压即运行,含配套文档,基于协同过滤推荐算法的音乐推荐系统:Python+Django开发

    基于协同过滤推荐算法的音乐推荐系统:Python+Django开发,SQLite数据库支持,MVC框架构建,解压即运行,含配套文档,基于协同过滤推荐算法的音乐推荐系统:Python+Django开发,SQLite数据库支持,MVC框架,解压即运行,含配套文档,音乐推荐系统 系统算法:基于用户的协同过滤推荐算法 编程语言:python 数据库:sqlite 框架:MVC web应用框架:Django 解压就可以运行(自己需要有调试项目环境的能力),需要软件python和pycharm或者Anaconda 项目有配套的文档 ,音乐推荐系统;基于用户的协同过滤推荐算法;Python;SQLite;MVC框架;Django;解压即运行;项目文档,基于MVC框架的Python音乐推荐系统:Django框架下使用SQLite数据库的协同过滤算法应用

    java-springboot+vue增强可视化的广州IT招聘系统设计与实现-说明文档-演示视频.zip

    管理员进入主页面,主要功能包括对用户管理、广州招聘管理、交流论坛、系统管理、我的信息等进行操作。

    社区治理智能化信息平台解决方案.pptx

    社区治理智能化信息平台解决方案.pptx

    数据驱动物流智慧化:Python实现物流数据挖掘、爬取与分析的研究思路及系统化实践,探索Python在物流数据挖掘项目中的应用-数据爬取、可视化与系统实现研究,数据挖掘项目python-物流数据的

    数据驱动物流智慧化:Python实现物流数据挖掘、爬取与分析的研究思路及系统化实践,探索Python在物流数据挖掘项目中的应用——数据爬取、可视化与系统实现研究,数据挖掘项目python--物流数据的爬取与分析 研究思路:数据爬取+可视化+系统实现 包含内容:数据集文档代码 ,数据挖掘项目;物流数据爬取;数据可视化;系统实现;数据集文档代码,Python物流数据挖掘项目:爬取、分析与系统实现

    基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明)

    【资源介绍】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,也可以作为小白实战演练和初期项目立项演示的重要参考借鉴资料。 3、本资源作为“学习资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研和多多调试实践。 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip 基于度量学习分类器的人脸识别系统(深度学习matlab源码+说明).zip

    基于Matlab Simulink的电机FOC观测器模型:龙贝格观测器结合PLL无传感器控制及PMSM模型精准估算转子位置信息,Matlab Simulink下电机FOC观测器模型:结合龙贝格观测器与

    基于Matlab Simulink的电机FOC观测器模型:龙贝格观测器结合PLL无传感器控制及PMSM模型精准估算转子位置信息,Matlab Simulink下电机FOC观测器模型:结合龙贝格观测器与PLL的无传感器控制策略,高精度估算转子位置与反电势,matlab simulink电机foc观测器模型,采用龙贝格观测器+PLL进行无传感器控制,其利用 PMSM 数学模型构造观测器模型,根据输出的偏差反馈信号来修正状态变量。 当观测的电流实现与实际电流跟随时,利用估算的反电势进行pll计算转子位置信息。 龙伯格观测器采用线性控制策略代替了 SMO 的变结构控制,有效避免了系统抖振,动态响快、估算精度高的优点。 ,MATLAB; Simulink电机; FOC观测器模型; 龙贝格观测器; PLL无传感器控制; PMSM数学模型; 输出偏差反馈; 状态变量修正; 估算反电势; PLL转子位置; 线性控制策略; SMO变结构控制; 系统抖振; 动态响应; 估算精度。,MATLAB Simulink电机FOC观测器模型:龙贝格观测器+PLL无传感器控制技术

    力士乐变频器调试软件RDwin11V09英文版功能解析与应用指南,力士乐变频器调试软件RDwin11V09英文版使用指南,力士乐变频器调试软件RDwin11V09,只有英文版的 ,关键词:力士乐变频器

    力士乐变频器调试软件RDwin11V09英文版功能解析与应用指南,力士乐变频器调试软件RDwin11V09英文版使用指南,力士乐变频器调试软件RDwin11V09,只有英文版的 ,关键词:力士乐变频器;调试软件;RDwin11V09;英文版;调试;变频器软件。,力士乐RDwin11V09变频器英文版调试软件使用指南

    FPGA高效实现CAN通信:基于SJA1000的8字节传输与动态发送ID控制代码测试报告,FPGA驱动CAN通信:SJA1000代码实现固定8字节传输与动态发送ID控制,经测试稳定可靠的数据收发系统

    FPGA高效实现CAN通信:基于SJA1000的8字节传输与动态发送ID控制代码测试报告,FPGA驱动CAN通信:SJA1000代码实现固定8字节传输与动态发送ID控制,经测试稳定可靠的数据收发系统,FPGA实现CAN通信,SJA1000 FPGA代码,接收和发送支持固定8字节,发送ID可受逻辑控制,已测试收发数据均正常且稳定,测试过程:串口接收数据通过CAN口发送出去,CAN口接收数据通过串口发送出去。 ,FPGA; CAN通信; SJA1000; FPGA代码; 接收; 发送; 8字节; 发送ID控制; 测试; 串口; CAN口,FPGA CAN通信实现:SJA1000代码支持8字节固定传输,收发稳定

    基于RF算法的多变量时间序列预测外部工具箱-轻松运行于Windows 64位系统的Matlab代码(版本2018B及以上),基于随机森林算法的RF多变量时间序列预测外部工具箱:Matlab代码与Wi

    基于RF算法的多变量时间序列预测外部工具箱——轻松运行于Windows 64位系统的Matlab代码(版本2018B及以上),基于随机森林算法的RF多变量时间序列预测外部工具箱:Matlab代码与Windows 64位系统兼容的便捷解决方案,基于随机森林(RF)算法的多变量时间序列预测 外部工具箱 RF多变量时间序列 matlab代码 注:暂无Matlab版本要求 -- 推荐 2018B 版本及以上 注:采用 RF 工具箱(无需安装,可直接运行),仅支持 Windows 64位系统 ,随机森林(RF)算法; 外部工具箱; 时间序列预测; Matlab代码; Windows 64位系统。,基于RF算法的Matlab多变量时间序列预测工具箱

    java-springboot+vue基于Hadoop的大数据的电脑硬件推荐系统-说明文档-演示视频.zip

    管理员登录系统后,可以对价格区间管理、用户管理、品牌管理、笔记本管理、电脑主机管理、电脑外设管理、硬件组装管理、电脑信息管理及系统管理等功能进行相应操作

    SymPy Python库:高级主题-自定义模块开发与社区贡献指南

    内容概要:本文介绍了SymPy这一用于符号数学计算的Python库的高级主题,主要包括自定义模块开发和贡献指南。首先是SymPy的基础安装与核心功能回顾,包括符号计算、方程求解、矩阵运算和符号积分等。之后深入探讨了如何理解和扩展SymPy模块结构,以及具体步骤指导如何开发自定义模块和提交贡献。对于希望深入了解和参与SymPy开发的用户而言,这是不可或缺的知识储备。 适合人群:具备一定编程基础并对数学计算有兴趣的研发人员,特别是那些想通过自定义模块丰富数学计算工具箱的技术爱好者和研究人员。 使用场景及目标:适用于想要扩展数学符号计算能力和贡献社区的个体或团队;目标在于利用SymPy实现更高层次的抽象数学问题,通过代码改进优化已有功能,并促进开放源代码生态系统发展。 其他说明:文档还包括详细的贡献流程和代码规范说明,旨在帮助开发者更好地理解如何参与到SymPy这样的大型开源项目中。同时强调了良好的文档写作习惯对社区交流的重要性。

    基于Verilog开发的FPGA密码锁工程:键盘输入、密码修改与验证及仿真模块,基于Verilog的FPGA密码锁工程:键盘输入,密码修改与验证,含仿真模块,Quartus与Vivado版本,基于Ve

    基于Verilog开发的FPGA密码锁工程:键盘输入、密码修改与验证及仿真模块,基于Verilog的FPGA密码锁工程:键盘输入,密码修改与验证,含仿真模块,Quartus与Vivado版本,基于Verilog 语言开发的FPGA密码锁工程。 通过矩阵键盘输入按键值。 输入12修改密码,13清除密码,可以修改原来默认的密码,修改时首先要输入当前密码进行验证,正确后才能更新当前密码,否则修改不成功。 修改结束后按键15,确认修改成功。 也直接使用默认密码作为最终密码使用。 按键14,进入开锁阶段之后,输入密码进行开锁。 有两个版本,分别为Quartus 和vivado 两个版本。 工程均带有完整的仿真模块。 前两张图为一个简单文档说明。 最后两张图为quartus的仿真图。 ,Verilog开发;FPGA密码锁工程;矩阵键盘输入;密码修改与验证;确认键操作;开锁功能;Quartus版本;Vivado版本;仿真模块;文档说明;Quartus仿真图。,基于Verilog的FPGA密码锁工程:双版本(Quartus & Vivado)矩阵键盘输入安全锁具

Global site tag (gtag.js) - Google Analytics