文档章节

Arrow IM SDK介绍-专门支持私有云本地化部署的IM即时通讯sdk

I
 IMSDK私有云部署
发布于 2015/11/17 17:19
字数 749
阅读 134
收藏 0

1.1   前言

随着移动互联网的日益发展,对APP功能的要求越来越高,以往仅仅是展示类型的APP将越来越不能满足客户的要求,APP市场会越来越向高层次、重量级应用发展,而IM是这些APP所需要具备的功能之一。

手机由于极强的移动与便捷性,使用通讯会变得前所未有的便捷,虽然通过微信、qq、微博等工具也能实现相互之间的沟通功能,但是这些毕竟是面向公众的应用,很多客户都需要将自己的客户组织起来,实现他们与他们的客户、以及他们客户彼此之间的类似微信类通讯的功能,一是要保证通讯较为封闭,二是实现必要的管理。

 

1.2   目前市场上有什么选择

抛开闭源的专业软件,开源的IM协议有XMPP和MQTT两大类,XMPP是基于XML格式的IM传输协议,目前已经得到了极为广阔的应用,比较有名的开源实现为Openfire,已经有很多公司使用。另外一大类型为MQTT,目前这方面的成熟开源软件实现还比较少,大规模应用的也还不多,而且由于天生的设计原因,需要做大量扩展之后才能实现现阶段的需求。

如果不介意数据的安全性,开发者也可以选择基于云服务的消息中间件,如融云、环信等公司提供的基于公有云的解决方案。

 

1.3   为什么不选择XMPP及Openfire

Openfire是目前使用得最多的开源IM聊天软件,实现相对比较成熟,但是在手机使用时有几个比较大的缺陷:

1.3.1       XML在移动端的不足

由于XML协议在传输过程中有很多冗余信息,导致流量的巨大浪费,同时也导致了耗电量的巨增。如果把协议改成二进制,将会大规模节省流量和电池消耗。

 

1.3.2       Openfire的不足

A、      体积过大,改造成本高,Openfire为了高度兼容性和各行各业的扩展性,现在的代码量很庞大,不易进行深度改造。

B、      可靠性不高,Openfire本身就有莫明奇妙丢消息的现象。

C、      性能不高,目前通过我们的优化,每台服务器的容量不到一万用户,而且网上的评论最高也就到3~5万条,显然不能满足客户的需求。

D、      集群功能缺失,Openfire的集群功能性能损耗非常严重,一般不适宜做集群配置。


© 著作权归作者所有

I
粉丝 0
博文 5
码字总数 2060
作品 0
海淀
私信 提问
Apache Arrow 内存数据

1.概述   Apache Arrow 是 Apache 基金会全新孵化的一个顶级项目。它设计的目的在于作为一个跨平台的数据层,来加快大数据分析项目的运行速度。 2.内容   现在大数据处理模型很多,用户在...

smartloli
2017/02/05
0
0
Apache Arrow JavaScript 0.3.0,内存数据交换格式

Apache Arrow 社区发布了 JavaScript 版的 Apache Arrow 0.3.0,这也是第二个 JavaScript 版本。 可通过源码或 npm 上的 apache-arrow 包进行安装 https://www.apache.org/dyn/closer.cgi/ar...

局长
2018/02/25
599
0
Spring Cloud 微服务组件 mica v1.1.3 发布,新增 http和第三方登录组件

mica(云母) mica 云母,寓意为云服务的核心,增强 Spring cloud 功能,使得 Spring cloud 服务开发更加方便快捷。 mica 核心依赖 mica 基于 java 8,没有历史包袱,支持传统 Servlet 和 Re...

如梦技术
06/24
2.3K
6
7月24日晚Spark社区直播:【Apache Spark 基于 Apache Arrow 的列式存储优化】

直播间直达链接:(回看链接) https://tianchi.aliyun.com/course/live?spm=5176.12282027.0.0.5622379ccY33Rf&liveId=41070 时间 7月24日19:00 主讲人: 诚历,阿里巴巴计算平台事业部 EM...

EMR
07/23
0
0
Qt 强制类型转化怎么理解

foreach (QGraphicsItem *item, scene->selectedItems()) { if (item->type() == Arrow::Type) { scene->removeItem(item); Arrow *arrow = qgraphicsitem_cast(item); arrow->startItem()->......

孔乙己式
2015/03/06
375
0

没有更多内容

加载失败,请刷新页面

加载更多

什么叫做IaC,与DevOps有什么关系?如何实现?

  互联网时代 ,Development应运而生,用户高并发 ,Operations 因势而动,用户终体验 Dev + Operations = DevOps。茫茫IT大江湖,创新钻研的人总会相遇,接头暗号:敏捷、持续、稳定、交付...

梅丽莎好
21分钟前
4
0
Docker下使用disconf:细说demo开发

Docker下的disconf实战全文链接 《Docker搭建disconf环境,三部曲之一:极速搭建disconf》; 《Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像》; 《Docker搭建disconf环境,...

程序员欣宸
48分钟前
8
0
centos7配置nfs共享存储服务

nfs 是一种网络文件系统,需要依赖rpc进行过程调度 注意nfs只验证id,验证用户名,并且只能在类unix os上进行文件共享服务,由于它的脆弱的验证机制,所以不适宜在internet上工作,在内网使用...

老孟的Linux私房菜
51分钟前
11
0
整合到 Mockito 2

为了能够持续改进 Mockito 和在未来提升测试体验,我们希望你能够升级到 Mockito 2.10!Mockito 按照语义化版本(semantic versioning)的方式对版本进行编排,并且只在主版本升级的时候包含...

honeymoose
今天
5
0
spring boot actuator

actuator 是监控系统健康的工具,引入 spring-boot-starter-actuator会暴露一些endpoint. 可通过如下配置来配置这些endpoint的基本配置: 可通过http:${url}:28081/management/actuator/*来访...

ZH-JSON
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部