群聊上行资源局依赖图
2016-05-27 17:25:36 0 举报
群聊上行资源局依赖图是一种图形化表示,用于展示群聊中各个成员之间的资源分配和相互依赖关系。图中的节点代表群聊成员,而边则表示成员之间的资源传递和依赖关系。通过观察图形,我们可以清晰地了解到每个成员在群聊中所扮演的角色以及他们之间的合作关系。这种依赖图有助于优化群聊的管理,确保资源的合理分配和有效利用,从而提高群聊的整体效率和协作效果。
作者其他创作
大纲/内容
查询消息位置信息
http 资源: http://i.api.place.weibo.cn/lbs_xy_to_geo.php
资源问题导致无法查出位置 不影响发消息
私有消息推送流程
否
短链转换有问题无容错策略
当前mid 是否比群最后一条消息大(容错机制)
改为直接从上述过程中获取
群激活和清除 放到推送(异步路程做)
非核心redis redis 异步处理
反垃圾策略
不禁言
uid 私有消息索引redis
redis:8368-8375
该redis 用于存贮 用于的私有消息索引 当用户的发言只能自己看到的情况下 访问该资源,用户私有消息索引仅会临时存1000条 资源问题导致发消息失败
非核心redis 异步处理
用户关系rpc
获取用户质量等级
降级开关:groupchat.msgSpam_getUserAttt_type_level.switcher高耗时可能会导致 发消息失败()群聊发消息超时失败策略资源不可用 不会影响发消息
是
检查用户是否被禁止发某一类型消息
redis 资源 8270~8277
当反垃圾返回标记为需要禁言,则会触发该类型资源set 值 若该资源出问题 则会导致 发消息失败
http:(http://ilogin.sina.com.cn/api/realnameauth/isauth)
降级策略 数据库降级 check_name_certificated_bypassport` 如果为开则去请求url 关闭 则直接调用 sinaUser.isNameCertificated()``` 方法无网络开销 开关降级 `groupchat.certificated.switcher``` 发消息开关
检查用户是否是群成员
redis 资源 8300~8307groupchat.redis.group.user
无熔断策略 核心接口 不可无效
群消息字段置成私有消息
获取sinaUser用户数据(用户关系rpc资源)
用户判断用户是否可信,是否是去世账号
rpc 失败则会报错 用户发不出消息
资源问题则直接返回成功策略
群消息入库
DB: jt_4572
资源问题会导致 无法发消息
根据反垃圾返回是否只能自己看到
try catch 住 失败则不禁言
目前功能关闭
上述过程超过3秒直接返回错误
获取群对象
mc 资源 casheservice name=dm-groupchat 1500 mc 资源 db 4572 资源
失败则去db当中查询并回种 缓存如果db 和mc 同时失效 则会影响发消息
失败则构造假数据确保链路正常由于反垃圾也使用了sinaUser考虑将sinaUser 传递下去
群消息缓存MC
MC 资源
资源不会导致发消息失败
禁言成功
sianUser 资源
当sinaUser 异常的时候 会构建一个假的sinaUser 确保链路正常
是否禁言
更新群最后一条消息索引
redis:8300-8309
将最后一条消息 回种redis 资源 资源问题导致发消息失败
考虑是否能做到一起内存优先减少redis 访问
待议
失败返回成功 此步骤仅用于群的状态校验
GroupChatService.sendMessage
反垃圾http
http://safe.i.t.sina.com.cn/v4/common.php?s=3&t=5
降级开关:groupchat.isSendMsgSpam.switcher高耗时可能会导致 发消息失败()群聊发消息超时失败策略资源不可用 不会影响发消息 只是其他群成员收不到
try catch 住 不做重试失败则返回默认
略
群激活和清除查询flags
入库操作 异步处理
阿里云异步鉴黄
核心资源,同步于处理,保证优先级
私有消息
更新消息索引
群消息索引redis
redis:8308-8315
该redis 用于存放 群消息的索引 以list方式的添加 并且 用mid进行排序 最多保留1200条资源问题导致发消息失败
更新群信息
DB: jt_4572redis:8300-8309
公有消息
正常推送流程
限速策略
redis:8271
资源问题会导致 无法限速
redis 资源 8270~8277
当redis 异常时候 直接返回默认值 0 0 代表不禁言,若返回不是0 则为错错误码,则群聊会抛出改错误码的富文本消息 用于发card 的消息太过频繁,会根据反拉机的返回来判定该用户是否被禁言,一般情况下有10分钟 24小时
更新用户在群的状态
redis:8368-8375
资源问题会导致 发消息
校验该用户是否可以发言
0 条评论
下一页