关闭

深入认识Tigase XMPP Server(上)

标签: xmpptigasecorsjaxmpppubsub
28356人阅读 评论(7) 收藏 举报
分类:

深入认识Tigase XMPP Server(上)

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

本文的目的是深入认识Tigase XMPP Server的特性。

1、Tigase HTTP API

实现XMPP和HTTP之间的桥梁,可通过REST调用实现对Tigase安装的管理和维护,可通过脚本API在运行时进行扩展。

使用HTTP API组件,可以:
1)下载Tigase XMPP服务器运行时的统计,它包含了1000种不同的性能度量。可以做到轻松、快速的监控和早期预警等功能。
2)通过REST API管理Tigase XMPP服务器,实现Tigase服务器与第三方维护、管理系统的集成。
3)灵活的脚本框架,可以在运行时添加管理任务,可以在扩展管理和维护功能时无需重启服务。
4)灵活的HTTP API框架,可以添加更多的服务并托管到XMPP引擎上。

2、Tigase XMPP Server

全球大约有1亿的设备连接到Tigase服务器上,全球大约有1100台服务器部署运行着Tigase服务器。

业界有很多优秀的开源XMPP服务器,比如eJabberd、Openfire、Jabberd2、Prosody,还有一些优秀的商业XMPP服务器,比如lsode、Jabber XCP等。在XMPP.ORG网站上可以看到完整的列表。

Tigase XMPP服务器是相当独特的,它完全支持最新的规范(如RFC6120-XMPP CORE、RFC6121-XMPP IM和其它扩展)。
1)高度优化的。主二进制文件小于1MB,可运行于10MB内存的设备上。
2)高度模块化。每个部件或组件都可以通过配置加载或替代。
3)非常灵活。集成到系统中很方便,支持开箱即用的集群,无需寻找附加软件或扩展库。
4)为低、中、高档服务器而设计。还在Amazon的EC2云上广泛测试过。
5)良好的测试。有专门的工具来运行自动化测试,还可以手动运行兼容性测试,以及大量的负载测试。所有的测试结果都是公开的,所有测试使用的工具和配置细节都是公开的。
6)支持脚本。支持Groovy、Python、Ruby、Scala等脚本语言编写扩展。
7)易于监控。可以通过HTTP、SNMP、JMX、XMPP等方式监控服务器。
8)支持SSL。Tigase从设计上就保证了安全,保护用户的隐私。API不允许从一用户访问另一用户的数据,在服务器端实现了强隔离。

3、Tigase ACS

Tigase单个安装(One Installation)可以支撑1400万在线用户;单个安装美妙可以处理50万条消息;单个安装可以实现40台服务器集群。即Tigase ACS。

Tigase ACS是Tigase XMPP服务器的商业级的集群实现。它专注于某些目标,如联系人列表超过10个,以及大规模XMPP系统工作在集群模式:
1)在安装时解决网络流量的问题
2)允许扩展到上百万的在线用户或设备
3)允许把负载分配到多种机器上
4)实现系统的高可用,预防服务的中断
5)支持超大群聊
6)提供消息推送服务

使用ACS可以达到:
1)降低集群节点间的网络流量10倍以上
2)减少CPU利用率至少5倍
3)在高负载情况下也能提供可靠服务
4)支持大量的连接
在设计上可处理500万以上的在线用户。我们测试过产品状态,支持150万在线用户。
5)支持多服务器
设计上可以在50台以上服务器上有效工作。测试过10个集群节点,产品系统运行在40台机器的情况。
6)部署极其简单
只需修改一点配置,数据库层不变。

4、Tigase发布订阅(PubSub)

Tigase支持完整的发布/订阅(PubSub)扩展规范。可以把消息推送到上百万的频道中,每个频道可以有上百万的订阅用户。集群模式下提供了近乎线性的可扩展性和负载分配。

发布订阅扩展允许你创建频道供用户订阅,你可以把内容推送到频道并发布。然后全部内容或者只是更新的内容会被发送给所有的订阅者。这种基于角色的系统,与群聊类似,但订阅者不必在线,离线也能把消息推送给用户(只要用户一上线就能收到)。

发布订阅功能可以做什么?
1)可以根据兴趣分组内容,如体育、科学、天气、新闻等,并把内容推送给感兴趣的人。
2)可以用于灾害预警,居民可以根据地理位置进行分组。
3)可以提供基于位置的服务。
4)业务流程可以使用此方式来发送警告。

Tigase的发布订阅可以提供:
1)交付近乎实时的通知给订阅频道的用户
2)基于角色的订阅系统,决定哪些用户只能接收/读取内容,哪些用户可以发布内容到频道,以及频道级管理员、全局管理员。
3)自定义内容和通知元数据可以很好地匹配各种需求。
4)灵活的基于用户的交付系统,可以决定是否只把通知交付给在线订阅的用户;是否把通知交付给所有订阅的用户;还可以指定通知的过期时间,以及其他很多选项。
5)支持数百万的发布订阅频道交付通知给订阅者。
6)发布订阅频道支持上百万的订阅者。

5、消息归档(Message Archiving)

Tigase提供了对消息归档的完整支持(XEP-0136扩展),支持数据库分片(开箱即用),还能作为外部组建部署到多种服务器上。

用户往往希望保存聊天记录以便以后检索,基本上目前大多数聊天客户端都在本地保存了聊天记录,但是,用户往往不止一个设备,用户希望聊天记录在每个设备上都能查到。那么这些聊天记录如何在各种设备的客户端之间进行同步呢?

最佳的解决方法就是把聊天记录存储在服务器端,并运行用户的所有设备都能访问聊天历史记录。消息归档组件允许把用户的聊天历史记录存储到服务器的单个库中,并能按需搜索。Tigase服务器提供了对消息归档扩展的完整支持。对终端用户而言,他的工作完全透明,自动存储消息。

消息归档提供了聊天文档的大量特征:
1)可以在任意时间打开/关闭聊天记录
2)支持OTR(Off-The-Record,即聊后即焚)聊天
3)自动把群聊分到不同线程以便逻辑区分不同的对话
4)根据不同的条件,可以灵活地检索聊天历史记录
5)管理员可强制查看所有用户的聊天记录,而不管用户的设置
6)支持开箱即用的数据库分配,允许数据和负载进行分配

6、JaXMPP库

提供Android移动设备、GWT Web客户端、独立的Java应用程序等库,完全支持XMPP/Jabber规范及其所有主要的扩展。

JaXMPP代表Java XMPP,但它不仅是Java库,它还兼容GWT,因此可以用于开发Web客户端,它还兼容Android Java,因此可以用于开发带XMPP支持的Android移动应用,以及常规的Java应用程序。

此客户端库的功能完整,而且代码开源并免费。
JaXMPP库网站: 
https://projects.tigase.org/projects/jaxmpp2
JaXMPP库文档: 
https://projects.tigase.org/projects/jaxmpp2/wiki


7、Web客户端

全功能的Web客户端,支持基本的聊天、MUC、发布/订阅和许多扩展管理接口,通过CORS,经BOSH或WebSocket连接到任意XMPP服务器实现跨站点支持。

CORS:Cross-Origin Resource Sharing,跨域资源共享

功能非常全,支持:
1)完整的XMPP规范
2)Web优化(更快的重连和聊天状态恢复)
3)消息归档支持(从服务器查看历史聊天记录)
4)良好的MUC群聊协议(访问Web浏览器时可以群聊)
5)发布订阅(直接从Web浏览器发布消息到发布订阅节点)

4
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

简单地说说 tigase

1 IM服务端开源工程1.1 主流开源工程介绍…。2 Eclipse部署2.1 Eclipse安装git插件。2.2 下载源码git clone https://repository.tigase.o...
  • Cancer_DD
  • Cancer_DD
  • 2015-08-03 18:19
  • 2720

XMPP协议学习笔记六(搭建Tigase开发环境)

最近事情比较少,抽空研究了一下Tigase,据说
  • nomousewch
  • nomousewch
  • 2014-06-24 15:28
  • 14227

移动IM开源框架Tigase > Openfire > Ejabberd对比分析

一、IM协议选择 二、IM 服务器的选择 三、XMPP协议的问题及改进 登录握手部分的改进 XMPPQuickStart (XEP 0305) 心跳改进 Xmpp Ping/...
  • u013100574
  • u013100574
  • 2016-11-17 10:21
  • 2084

tigase 安装后出现登陆错误原因

原帖在这里http://www.tigase.org/content/tigase-db-errorclient-cant-login tigase db error,client can't ...
  • chlaws
  • chlaws
  • 2012-10-16 10:19
  • 3981

Linux下搭建即时通讯聊天服务Tigase 实战详解

基于xmpp协议的 服务 tigase server 的安装和测试 官方文档存在的问题: 1、官方安装文档没有说明要在部署的服务器上安装mysql或者其他你要使用的数据库的环境,而是简单的说要安装...
  • jessonlv
  • jessonlv
  • 2015-03-27 12:10
  • 4038

Tigase 概述

  • 2015-05-01 13:24
  • 25KB
  • 下载

Tigase 如何避免丢失消息

转载自: http://www.cnblogs.com/apem/p/4367365.html 即时通讯        即时通讯网上有第三方的解决方案,比如环信,融云等。我们是自己搭的xm...
  • lixiaowei16
  • lixiaowei16
  • 2015-09-18 17:09
  • 1685

tigase的笔记一 — 基本的配置

http://www.inter12.org/archives/879 基本介绍 1.支持字节包的替换,只需要替换/root/soft/tigase/jars下的tigas...
  • xiahanss
  • xiahanss
  • 2014-09-12 16:49
  • 1925

Linux搭建XMPP服务器Tigase(Spark客户端测试)

Tigase是一个基于Java开发的XMPP服务器,类似于Openfire,可用于搭建一个即时通讯(Instant Messaging,简称IM)的平台。1、准备在安装Tigase之前,首先需要准备J...
  • xiao__gui
  • xiao__gui
  • 2014-11-07 13:41
  • 7297

深入认识Tigase XMPP Server(下)

深入认识Tigase XMPP Server(下)作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs接上一篇文章《深入认识Tigase XMPP Server...
  • chszs
  • chszs
  • 2014-11-19 15:59
  • 13153
    个人资料
    • 访问:5857065次
    • 积分:51628
    • 等级:
    • 排名:第65名
    • 原创:792篇
    • 转载:23篇
    • 译文:24篇
    • 评论:1186条
    一名路过的黑客

    大家好,我是黑客,专门盗账号的。现在这个人的帐号被我盗了,但看这个人平时的博客空间,一直过着艰苦努力、持之以恒的技术研究生活,勤奋刻苦,积极分享,无私奉献,我被深深的感动了,这是一个纯粹的人,人品这样的高尚,希望大家看到我这条消息后,可以私聊他,多鼓励他,不缺钱的就多给他一些经济上的资助,让他再接再厉!就这样吧,我下线了,眼框湿湿的难受。

    文章存档