im即时通讯开发:消息模型、万人群、已读回执、消息撤回功能

本文探讨了企业微信在即时通讯开发中遇到的挑战,包括消息鉴权、回执、撤回、存储和群聊管理。通过采用分布式架构、消息存储优化、过载保护和业务隔离策略,确保消息系统的稳定性、可靠性和安全性。同时,介绍了如何通过扩散写方式处理群聊消息,以平衡存储成本和用户体验。
摘要由CSDN通过智能技术生成

企业微信作为一款办公协同的产品,聊天消息收发是最基础的功能。消息系统的稳定性、可靠性、安全性尤其重要。

消息系统的构建与设计的过程中,面临着较多的难点。而且针对toB场景的消息系统,需要支持更为复杂的业务场景。

 

针对toB场景的特有业务有:

1)消息鉴权:关系类型有群关系、同企业同事关系、好友关系、集团企业关系、圈子企业关系。收发消息双方需存在至少一种关系才允许发消息;

2)回执消息:每条消息都需记录已读和未读人员列表,涉及频繁的状态读写操作;

3)撤回消息:支持24小时的有效期撤回动作;

4)消息存储:云端存储时间跨度长,最长可支持180天消息存储,数百TB用户消息需优化,减少机器成本;

5)万人群聊:群人数上限可支持10000人,一条群消息就像一次小型的DDoS攻击;

6)微信互通:两个异构的im系统直接打通,可靠性和一致性尤其重要。

整体架构分层如下。

1)接入层:统一入口,接收客户端的请求,根据类型转发到对应的CGI层。客户端可以通过长连或者短连连接wwproxy。活跃的客户端,优先用长连接发起请求,如果长连失败,则选用短连重试。

2)CGI层:http服务,接收wwproxy的数据包,校验用户的session状态,并用后台派发的秘钥去解包,如解密失败则拒绝请求。解密成功,则把明文包体转发到后端逻辑层对应的svr。

3)逻辑层:大量的微服务和异步处理服务,使用自研的hikit rpc框架,svr之间使用tcp短连进行通信。进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值