背景:
在移动互联网时代,即时通信是一种最基础的产品场景。但当前主流的即时通信软件,对一些企业,特别是对于政务、金融、医疗等领域的企业来说,数据不够安全,容易造成信息泄露。他们并不想将核心数据资产放置在非本地。同时,很多知名企业需要定制属于自己品牌的IM UI 来提升企业形象,而不愿选择使用一些普遍性的即时通信软件。这些因素都使得很多企业迫切的需要IM私有化服务。
针对当前众多企业对于私有化的迫切需求,腾讯云即时通信IM已全面支持私有化部署功能。我们将为企业提供SDK 后台服务私有化部署。客户能够将系统直接部署到自己的服务器上,数据和应用都在客户本地。客户可以根据SDK提供的标准API,完成上层UI的定制开发,同时我们也提供了开源的UI库,让客户来根据自己的需要进行修改。
- 支持个性化定制;
- 系统部署在本地,数据更安全可控;
- 拓展性强,企业能自主二次开发;
- 可实现内外网隔离,局域网 外网办公发挥综合优势;
- 服务质量可控。
架构说明:
接入层:提供长短连接服务,维持与终端的长连接,对外提供连接通道,对内提供在线推送,接收客户端上行消息,对下游业务模块发起调用。
群聊/单聊:提供群/私聊相关业务处理。
账号关系链:提供账号相关服务,如登陆,拉取个人资料等(关系链:比如好友关系,拉黑等)。
状态服务:维护用户状态,如果设备信息,接入点等。
未读:提供用户纬度的未读计数服务。
推送:统一消息/通知下行出口,提供在线 离线推送服务。
架构特点:
1. 化零为整 (近百模块整合精简为7个)
私有化运维的复杂程度和后台模块数量成一种正相关的关系。公有云IM后台服务是按照经典海量服务,"大系统小做"的准则实践的,总共有近百个服务模块。
私有化则对这些服务模块进行了合并,将模块精简为接入层,群聊,单聊,账号关系链,状态服务,未读服务,推送等总计7个服务模块。
模块合并将大大降低企业运维难度和部署难度,排查问题链路更短,并且占有资源更小。功能测试环境只需要一台2c4g机器,即可部署整套系统进行测试。
2. 基础设施用开源组件替代
腾讯云IM公有底层存储用的是早期自研的分布式存储。如果对这块存储也做私有化,会很大程度上提升客户的运维复杂度,需要重新上手且不能通用。
即时通信IM私有化服务为了让整体架构更容易运维和交付,因此改用了业界常用的开源组件mongodb redis mq。
3. 协议和公有云完全一致
IM私有化服务所有的业务协议和公有云IM完全一致,所使用的sdk也是同一套。客户只需要更新SDK到新版本,设置私有化IP和端口,其他使用方式和公有云IM一致。
4.支持多地热备
支持故障自动切换。
接入层面:IM SDK支持设置多个私有化服务器地址,SDK会并行对这些地址发起探测,并根据就近访问原则和最先返回的建立长连接。当最近的接入点挂掉时,IM SDK 在静默状态下会在一分钟内自动重连其他接入点,在非静默状态下,当用户有操作时会马上自动重连。
数据层面:依赖redis和mongo自身的热备切换能力,active-standby模式
5. 支持新老IM系统的平滑过渡
6. 对象存储可自由切换
通常中大型公司内都会有自己的对象存储,或采购厂商,或自建。
im自带了一个对象存储proxy,向上封装了sdk的文件传输协议(预签名/探测/续期/上传/下载/缩略图/查看图片信息),向下兼容各类不同的、支持S3协议的对象存储
1. 监控:基于开源普罗米修斯
2. 日志系统:基于开源EFK
(Elasticsearch Filebeat Kibana)
3. 链路追踪:基于开源jeager
如果您希望咨询或使用即时通信IM私有化服务
请扫描下方的二维码
完成信息填报后,我们会与您联系~