sdk 服务降级与流控

sdk本身是基于netty 服务,netty 虽然是高性能的异步网络框架,一个线程将会处理很多channel 读写事件。毫无疑问 ,这里性能瓶颈在于读写事件处理。
服务降级
本质上通过降级其他服务,保证核心服务正常运行。
核心点 -> 关掉非关键部分服务的业务,保证核心服务的正常运行。
说实话 sdk 服务属于基础服务 , 非关键服务,比如我方鉴权,3方风控,这些都是属于可以降级的服务。直接降级是不会有很大问题的,用户无感知。如果非sdk的降级属于轻度降级的话。 那sdk降级应该属于中度,或者重度了。 大部分会影响前台展示。

发送私信消息 - 核心业务
1. 未读消息不入表 sdk 重
2. 未读消息,历史消息延时批量入 sdk 中
3. 当tqmq 下游消费消息 远远慢于上游时候 ,这时候,是否可以将消息直接走离线推送流程 。如果快速添加下游消费节点,但是由于是长链,新添加的节点无法迅速的提供消费能力,没有办法的情况下才做此法。 tqmq 重

会话列表
1. 只显示私信会话列表 (点赞,回复不显示在列表)sdk 中
未读消息
1. 返回数据空 (用户暂时看不到未读消息)走历史消息 sdk 重
历史消息
1. 3个月多级缓存数据 (3个月之前的不提供服务降级)sdk 中
点赞
1. 不插入会话列表 sdk 重
2. 延时批量入 sdk 中

回复
1. 不插入会话列表 sdk 重
2. 延时批量入 sdk 中

拒绝策略

当服务降级至sdk 重 ,发送消息rt依然很高 ,没办法只能启动限流,开关了 ,对所有发送消息 启用限流 ,每s 每个实例固定2000消息请求调用,其余消息直接返回失败。

目前 soa 框架 重试时间是15s ,高并发情况下明显是有问题 ,当下游服务15s 不能响应的时候 ,每s 数w,数10w个请求 ,很有可能jvm 内存扛不住就会溢出的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,736评论 0 15
  • 传统行业向互联网行业的转型 背景 2012年以后,因为移动互联网的兴起,随着网名数量的增多,需求变化大,用户群体大...
    哈喽沃德先生阅读 4,330评论 0 2
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,721评论 28 53
  • 人工智能是什么?什么是人工智能?人工智能是未来发展的必然趋势吗?以后人工智能技术真的能达到电影里机器人的智能水平吗...
    ZLLZ阅读 9,382评论 0 5
  • 首先介绍下自己的背景: 我11年左右入市到现在,也差不多有4年时间,看过一些关于股票投资的书籍,对于巴菲特等股神的...
    瞎投资阅读 11,047评论 3 8