https://github.com/tkrajina/go-reflector 源码分析系列文章已经开源到github,地址如下: github: https://github.com/farmer-hutao/k8s-source-code-analysis gitbook: https://farmer-hutao.github.io/k8s-source-code-analysis reflector 前面说到 Store 要给 Reflector 服务,我们看一下 Reflector 的定义:
2019 年 11 月 21 日,golang 的官方 github 仓库提交了一个 https://github.com/golang/go/issues/35750 ,该 issue 指出如果初始化 http.Server 结构体时指定了一个非空的 ConnContext 成员函数,且如果在该函数内使用了 context.Value 方法写入数据到上下文并返回,则 Context 将会以链表的方式泄漏。
Linux 只能收到 SYN 包 不能回包 问题 如果用户发现云主机不能登录,例如无法远程 22 端口或其他端口,但是更换网络环境正常,服务端抓包发现客户端发包只有 SYN,没有回包,可以执行 netstat -s |grep rejec 查看下是否是 tcp_timestamps 的问题 [root@hfgo2 ~]# netstat -s |grep rejec 8316 passive connections rejected because of time stamp 780 packets rejects in established connections because of timestamp 如果出现很多数据包的 timestamp 被拒绝,则检查下内核参数 tcp_tw_recycle 是否开启,如果开启,将其关闭即可。 [root@hfgo2 ~]# cat /proc/sys/net/ipv4/tcp_tw_recycle 原因 这个主意是和内核的 2 个参数相关
https://pracucci.com/linux-tcp-rto-min-max-and-tcp-retries2.html TCP retransmits an unacknowledged packet up to tcp_retries2 sysctl setting times (defaults to 15) using an exponential backoff timeout for which each retransmission timeout is between TCP_RTO_MIN (200 ms) and TCP_RTO_MAX (120 seconds). Once the 15th retry expires (by default), the TCP stack will notify the layers above (ie. app) of a broken connection.