码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 自定义开发限流组件 之 场景需求分析


    限流,通常讲就是限制流量,也有很多其他的说法,比如:限频、疲劳度控制等。

    原文链接:自定义开发限流组件 之 场景需求分析-一只小Coder

    最近遇到一个需求,系统A作为一个专门推送消息给客户的消息中心系统,对于每个客户是否能接受消息,能接受多少消息,接收消息的速度,能接受哪些消息等都要进行控制,这也就引入了需要做消息限流的需求了,而且是多维度的。

    分析

    对于限流的维度来讲,上面提到需求中可以提炼出有:客户维度,消息类型维度;从限流的本身来讲,有频率控制,数量控制。详细说一下:

    • 客户维度:客户的适当性,该客户是否可以接受消息(客户状态);
    • 消息类型:订单类消息和推广类消息不一致,订单类要及时一些,推广类不及时也行;
    • 消息频率:消息的频率有快有慢(动态时间窗);
    • 数量控制:固定时间段内能接收的消息数量(固定时间窗),不同客户能接受消息的数量等等。。。

    通过以上分析可得每个能成为影响客户接受消息的频率因素,在将这几个维度组合起来,频率控制的组合,策略,就有很多了。
    市面上的限流组件有很多,我之前用过的就是Sentinel,该框架只需要对需要做限流的接口做一些简单的配置,加几个注解(埋点),即可通过Sentinel自身的限流规则加上接口的一些参数做到限流。不过,对于非技术人员来讲就不太友好,对此,还是自己设计一个限流的组件,或者模块比较合适,后续的文章会对该需求慢慢实现。

    目前大致的想法就是从不同维度分析,设计客户,消息类型,限流记录等几个表,用来记录限流的策略;通过Redis实时记录、更新发送消息的频率数据... ... ... ... ...

  • 相关阅读:
    Angular10.0项目中使用mock.js
    c#中上传超过30mb的文件,接口一直报404,小于30mb的却可以上传成功
    面向对象, 常用类, 集合, 异常, JDBC, mysql数据库 复习
    java观察者模式
    Virtualbox打开Mac下面的PD虚拟机
    图像相似度对比分析软件,图像相似度计算方法
    SSH 免密登录配置与Permission denied (publickey,gssapi-with-mic,password)问题
    H5基本开发1——(H5简单概述)
    lme4:用于混合效应模型分析的R包
    leetcode做题笔记141. 环形链表
  • 原文地址:https://www.cnblogs.com/onecoder/p/16901091.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号