zoukankan      html  css  js  c++  java
  • 优化设计学习记录~2

    时钟轮 TimingWheel ~ 延迟队列 ~ 将每个定时任务放到对应的时间槽位上,这样可以减少扫描任务时对其它时间槽位定时任务的额外遍历操作

    不好的实践:每个请求对应一个线程sleep or 一个线程定时扫描所有

    用在哪儿 ~ 调用端请求超时处理,调用端与服务端超时,定时心跳等

                 ~ kafka中配置了 acks=all 的生产者发送的请求可能一时无法完成,因为 Kafka 必须确保 ISR 中的所有副本都要成功响应这次写入。因此,通常情况下,这些请求没法被立即处理。只有满足了条件或发生了超时,Kafka 才会把该请求标记为完成状态。这就是所谓的延时请求

    类型 ~ 简单的 or 分层的(下一层的时间轮中每个槽位的单位时间是当前时间轮整个周期的时间,当时钟轮的第一个周期所有槽位跳动完之后,就会从下一个时钟轮取出一个槽位的任务,重新分布到当前时钟轮中,当前时钟轮则从第0槽位重新开始跳动)

    Bucket(每个桶下是双向循环链表保存延迟请求)、tick

  • 相关阅读:
    hexo命令报错
    开始使用hexo
    javascript 获取元素
    javascript DOM属性操作
    javascript DOM节点操作
    javascript 完美拖动效果
    ubuantu 18.04 LTS 版本解决网易云安装启动问题
    课后作业-阅读任务-阅读提问-3
    C# 并行循环
    C# 委托
  • 原文地址:https://www.cnblogs.com/it-worker365/p/14430830.html
Copyright © 2011-2022 走看看