海量数据求top K问题
问题:海量数据求top K问题 https://blog.csdn.net/zyq522376829/article/details/47686867 10亿个数中找出最大的10000个数 方式1:排序(快排) 时间复杂度:O(NlogN) 空间复杂度:O(NlogN) 方式2:局部淘汰 1、定义一个数组存储最大10000个数 2、遍历10亿数,与最大数...
问题:海量数据求top K问题 https://blog.csdn.net/zyq522376829/article/details/47686867 10亿个数中找出最大的10000个数 方式1:排序(快排) 时间复杂度:O(NlogN) 空间复杂度:O(NlogN) 方式2:局部淘汰 1、定义一个数组存储最大10000个数 2、遍历10亿数,与最大数...
三种状态 关闭:失败的次数低于阀值 开启:一定时间内,请求快速失败返回,或采用备用链路处理 半开启:熔断器尝试接受一部分请求,若还是请求还是失败,则恢复到开启状态 一些参数 错误比例阀值:达到阀值则进入开启状态 开启状态超时时间:超过后该时间后进入半开启状态 半开启状态允许请求数量: 窗口时间大小: 参考 一文讲透自适应熔断的原理和实现...
死锁四大条件 互斥条件:资源在一个时间段内只能为一个进程使用,其他进程阻塞等待 保持与请求条件:进程在保持占有一个资源,又请求新资源 不可剥夺条件:进程占用的资源只能由该进程释放 循环等待条件:多个进程形成循环等待资源释放 死锁处理方式(根据死锁产生的前中后) 预防死锁 破坏死锁产生条件 避免死锁 银行家算法 加锁顺序 加锁时限 检测死锁 ...
异常进程 孤儿进程: 父进程退出,子进程仍在运行,子进程成了孤儿进程 孤儿进程由init进程接管 僵尸进程: 子进程退出,父进程没有wait或waitpid,子进程描述还存在进程中,这个子进程就成了僵尸进程 并发、并行 并发:一个CPU通过时间片轮询去调度多个程序,CPU同一时刻只能...
CAP CAP定理又叫布鲁尔定理,在分布式体统中,不可能同时满足CAP,只能选择CP或AP C(Consistency):一致性;在不同节点读取到的数据是一样的,是最新的,强一致性。 A(Availability):可用性:非故障节点要求在合理的时间返回,返回的数据是正确的。 P(Partition tolerance):分区容错性:一个集群中,当一台机器出现问题,这个集...
errgroup 使用 package main import ( "context" "fmt" "time" "golang.org/x/sync/errgroup" ) func main() { group, _ := errgroup.WithConte...
Set [key] [value] ex [xx] nx 简单业务中使用 存在锁续期问题 单机Redis实现:Redisson 概述 基于lua脚本,原子性 Redis官方推荐 加锁机制 判断是否存在锁 若无则hincrby myLock 285475da-...
查看内存使用情况 top、htop 查看CPU使用情况 top、htop systemctl status查看service不断重启 原因 服务发生Panic 解决 journalctl -xe | grep ${service} journalctl -u ${service} -r 文档:https://wangchujiang.com/linux-command/c...
gRPC 是Google开源的RPC框架 基于HTTP/2标准设计 帧:数据通讯的最小单位 流:二进制编码流传输,http1.1文本传输 多路复用:同一个域名,只占用一个tcp连接 服务端主动推: 通过protobuf来定义接口,数据被序列化成二进制编码传输,提高效率 有四种调用方式:一元调用、服务...
内存管理-内存分配 分配器 线性分配器 定义:当用户程序需要申请内存时,从指针所在的位置开始分配内存,并向后移动指针。 局限性:分配速度快;指针前面的释放的内存块不能重用,...