5 阿拉斯加大闸蟹

尚未进行身份认证

我要认证

blog中的内容涉密信息都会处理,其中的涉及链接部分都会跳转为我所在公司主页

等级
TA的排名 8k+

分布式限速器

限流算法漏桶算法漏桶算法思路很简单,水(也就是请求)先进入到漏桶里,漏桶以一定的速度出水,当水流入速度过大会直接溢出,然后就拒绝请求,可以看出漏桶算法能强行限制数据的传输速率。 示意图(来源网络)如下:令牌桶算法令牌桶算法和漏桶算法效果一样但方向相反的算法,更加容易理解。随着时间流逝,系统会按恒定1/QPS时间间隔(如果QPS=100,则间隔是10ms)往桶里加入令牌(想象和漏洞漏水相反,有个水龙头在不断的加水),如果桶已经满了就不再加了。新请求来临时,会各自拿走一个令牌,如果没有令牌可拿了就阻塞

2020-10-20 14:50:59

TCP握手、time_wait、close_wait等问题详解

目录系统调用 listen() 的 backlog 参数指的是什么P2P 下载加速理论上的加速比是多少呢?TCP 的发送窗口有哪些稳定状态呢?TCP 是端到端的协议,也就是 TCP 对端 Peer 只看到对方,看不到网络上的其他点,那么 TCP 的两端怎么对网络情况做出反映呢?发生拥塞的时候,拥塞控制机制是如何的?TCP 两端 Peer 的处理能力不对等的时候,比如发送方处理能力很强,接收方处理能力很弱,这样发送方是否能够不管接收方死活狂发数据呢?如果不能,流量控制机制的如何的?假如

2020-09-12 00:30:54

redis slow log采集

价值意义1.便于统计分析,以往只能一个节点一个节点看,采集到一起方便分析2.慢日志持久化,类比MySQL,mysql是有日志文件的,而redis是内存队列FIFO3.redis是单线程的slowlog的监控分析很有意义,严重会导致系统雪崩设计概要实现原理slowlog get [len]和slowlog reset。slowlog get [len]命令获取指定长度的慢查询列表。 redis 127.0.0.1:6379> slowlog get 2...

2020-09-10 17:45:34

Linux关于IO部分

成本:程序不能直接访问硬件:网卡、磁盘(内核来访问的)内核提供了:sysctl(软中断、硬中断)strace -ff -o ./xxx java TestSocket:抓取程序对内核有没有系统调用cd /proc/PID:进程的文件描述cd task:看有多少个线程cd fd:文件描述符(0、1、2基本描述输入 输出 错误)netstat -natp 只有服务端只有listen状态nc:可以和任何程序建立连接epoll尽量不浪费CPUsele...

2020-09-08 22:46:46

线上redis ttl时间未到缺key却被删除排查录

引言:以下内容直接从我球的docs粘贴:https://xueqiu.com/欢迎简历投递:hekuangsheng@xueqiu.com问题:目前悬赏贴悬赏有效期为5天,余额只存储在redis中,集群为status集群,key:st:offer:balance:{statusId},缓存有效期为6天。当进行分配赏金时,会查询该贴的余额。有问题的悬赏贴,相应的redis key被删除。 分析:首先,大致看了下业务代码和 redis 组件相关的实现,以及 24/25 号的日志,没有

2020-09-07 14:01:41

redis lua执行原理,主从同步,动态变量

[Redis Slowlog]是排查性能问题关键监控指标。它是记录Redis queries运行时间超时特定阀值的系统。这类慢查询命令被保存到Redis服务器的一个定长队列,最多保存slowlog-max-len(默认128)个慢查询命令。当慢查询命令达到128个时,新产生的慢查询被加入前,会从队列中删除最旧的慢查询命令。执行原理创建并修改Lua环境1 创建基础Lua环境 2 载入函数库 3 创建全局表格Lua 4 替换随机函数 5 创建排序辅助函数 6 创建redis.pcall

2020-09-07 13:40:17

计算机网络TCP/IP协议 SOCKET debug工具,方法,实践

应用层exec 解析程序的外壳开启链接:eg:exec 8<> /dev/tcp/www.baidu.com/80 8<>:重定向的,输入输出指向baidu这个链接进入到当前的句柄位置:cd /proc/$$/fd给百度发送命令:echo -e "GET / HTTP1.0\n" 1>& 8其中引号部分就是协议接收百度的返回:cat 0<& 80<&:接收输入1>&:标准输出.

2020-08-20 23:17:09

CPU和IO debug工具,方法,实践

Linux CPU 性能优化指南uptime查看系统瓶颈负载[root /home/user]# uptime 13:11:01 up 888 days, 21:33, 8 users, load average: 17.20, 14.85, 14.10lscpu查看 CPU 信息:[root@Tencent-SNG /home/user_00]# lscpuArchitecture: x86_64 CPU op-mode(s): 32-bit, 64-bit

2020-08-20 22:10:31

操作系统CPU底层

CPU:中央处理器,运算器+控制器PC:程序计数器,用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,且具有自动加1的功能,即可自动形成下一条指令的地址。IR:用来存放当前的指令,IR的内容来自于主存的MDRCU:控制单元,用来解释存储器中的指令,并发出各种操作命令来执行指令ALU:算逻部件,用来完成算术逻辑运算ACC:累加器,运算器中的寄存器的一种MQ:乘商寄存器X:操作数寄存器MAR:存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数MDR:.

2020-08-19 22:46:31

Broken pipe (CLOSE_WAIT) 问题排查

问题:|ERROR|c.x.s.c.s.AccessPermissionFilter|b2a299e5a8cbe429.b2a299e5a8cbe429<:b2a299e5a8cbe429||Unexpected error occurred in AccessPermissionFilter: com.xueqiu.snowball.common.servlet.ExceptionWrapper: org.apache.catalina.connector.ClientAbortExceptio

2020-08-10 13:48:16

JVM 堆外内存泄漏

首先开启:-XX:NativeMemoryTracking=detail然后jcmd pid VM.native_memory detail,打出内存分配信息,注意NativeMemoryTracking显示的内存不包含C++分配的内存。此处需要关注两个点:第一,Total行的committed数值是否等于进程占用的物理内存,如果不等,说明有C++等native code分配的内存,可参考Java调用C++组件分析;第二,Native Memory Tracking的committed.

2020-08-10 13:45:27

lettuce write to slave问题排查即redis slot mapping问题

问题现象问题描述2020-07-14社区snowflake-status服务在上线一个redis集群双写功能时遇见线上日志报错,报错内容如下10.10.165.24/logs/stdout.log-2020071420.gz:2020-07-14 20:49:07.495|ERROR|c.x.s.s.c.CommentController|09d358c22ea99bc9.09d358c22ea99bc9<:09d358c22ea99bc9|io.lettuce.core...

2020-07-31 10:35:11

Redis Gossip广播通信 2.redis gossip的应用

Redis Cluster节点通信Redis Cluster采用P2P的Gossip协议,每个节点与其他节点间不断通信交换信息,一段时间后节点信息一致,每个节点都知道集群的完整信息。Redis Cluster通信过程:(1)集群中的每个节点都会单独开辟一个TCP通道,用于节点之间彼此通信,通信端口号在基础端口上加10000;(2)每个节点在固定周期内通过特定规则选择几个节点发送ping消息;(3)接收到ping消息的节点用pong消息作为响应。集群中每个节点通过一定规则挑选要通信的节

2020-07-21 15:32:08

Redis Gossip广播通信 1.gossip原理概述

出自知乎专栏:P2P 网络核心技术:Gossip 协议摘要:背景Gossip protocol 也叫 Epidemic Protocol (流行病协议),实际上它还有很多别名,比如:“流言算法”、“疫情传播算法”等。这个协议的作用就像其名字表示的意思一样,非常容易理解,它的方式其实在我们日常生活中也很常见,比如电脑病毒的传播,森林大火,细胞扩散等等。Gossip protocol 最早是在 1987 年发表在 ACM 上的论文 《Epidemic Algorithms for..

2020-07-21 15:27:02

Redis CRC16校验 2.Redis的CRC16应用

CRC16与slot关系:redis的RCR16与slot的hash槽就分不开了hash槽最大是16384,意味着可以有这么多个node节点,但官方推荐最大的节点数量为1000HASH_SLOT= CRC16(key) mod16384why redis-cluster use 16384 slots?author's :The reason is:Normal heartbeat packets carry the full configuration of a node,..

2020-07-21 15:23:54

Redis CRC16校验 1.原理概述

CRC16校验1.原理概述来自简书:CRC16算法 来自github.io带图解说:CRC循环冗余校验 来自之乎专栏:CRC-16校验原理与说明来自简书:CRC16算法简书摘要:CRC16 标准目前常用CRC16算法主要是依据以下两种标准:CRC16 算法按照使用环境不同,主要有以下三种实现: 按位计算 程序空间十分苛刻但 CRC 计算速度要求不高的微控制器系统 按字节计算 程序空间较大且 CRC 计算速度要求较高的计算机或微控.

2020-07-21 15:22:34

《kafka技术内幕》读书笔记

生产者部分ISR?leader维护的动态健康follower集合(我简称他们为太子)leader发生故障之后从ISR中选举新的leaderHW、LEO?HW高水位:consumer可见的数据LEO每个副本最后的offset值:leader发生故障之后,会将offset同步到HW,高于部分数据截掉(只能够保证数据的一致性,并不保证数据的丢失和重复问题)Exactly Once?At Least Once语义,ack=-1(enable.idompotence=true,<

2020-07-21 10:40:52

redis线上动态增加密码认证

首先这个需求要是做得话,大部分情况下如果仅仅是把redis当做cache的话不会有很多的问题,然后如果是当做存储使用的话,其中的问题还不少,首先从网上找到了这两篇内容:1.基于proxy代理实现:https://www.dazhuanlan.com/2020/01/20/5e253da29ab4f/2.修改jedis源代码:https://blog.csdn.net/TVwR8OfV0P/article/details/80155363而我们使用的是lettuce,基于netty编写的,如果要是

2020-07-20 10:40:39

Redis server cannot allocate memory

这个问题是redis高端微信群里面反应的,我给记录一下,算是知识补充线上日志:线上redis配置:当时网友推荐这个redis的配置,然后要求提供下线上server日志# By default Redis will stop accepting writes if RDB snapshots are enabled# (at least one save point) and the latest background save failed.# This will mak..

2020-06-24 16:38:12

关键词抽取,从网上找的总结,实战稍后

原因是股票社区的文章,经常出现一些水军,整天讨论些风牛马不相及的内容,然后大肆的破坏社区氛围,基于此要对一个文章进行主题的抽取,有了上一篇的相似贴的分词经验,下一步应该会顺利些https://www.zhihu.com/question/21104071作者:刘知远链接:https://www.zhihu.com/question/21104071/answer/24556905来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。我博士阶段的研究课题就是关..

2020-06-09 16:56:42

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。