pengwei
pengwei
https://mushroomsir.github.io/go_raw_socket/ 原始套接字(raw socket)是一种网络套接字,允许直接发送/接收更底层的数据包而不需要任何传输层协议格式。平常我们使用较多的套接字(socket)都是基于传输层,发送/接收的数据包都是不带TCP/UDP等协议头部的。 当使用套接字发送数据时,传输层在数据包前填充上面格式的
https://mushroomsir.github.io/go_slice/ 上周四小伙伴发了Go社区一个帖子下hej8875的回复,如下:这个回复比原贴有意思,也很有迷惑性。作者测试了下,确实如此,于是和小伙伴们讨论深究下。开始以为应该挺简单的,理解后,发现涉及挺多知识点,值得跟大家分享下过程。先抛去注释的这行代码
https://mushroomsir.github.io/wsl_and_windows/ WSL 是**Windows Subsystem for Linux** 的简称,主要是为了在Windows 10上原生运行Linux二进制可执行文件(ELF格式),而提供的兼容层。 通俗来讲是在Windows10 嵌入了个Linux子系统(默认是ubuntu),方便运行大部分 Linux 命令及软件,比如```grep``` ```MySQL``` ```Apache```
https://mushroomsir.github.io/go_raw_socket_2/ 接上次的博客,按照约定的划分,还有一层链路层socket。这一层就可以自定义链路层的协议头部(header)了,下面是目前主流的Ethernet 2(以太网)标准的头部: 相比IP和TCP的头部,以太网的头部要简单些,仅有目标MAC地址,源MAC地址,数据协议类型(比如常见的IP和ARP协议)。
https://mushroomsir.github.io/go_http_timeout/ 最新有同事反馈,服务间有调用超时的现象,在业务高峰期发生的概率和次数比较高。从日志中调用关系来看,有2个调用链经常发生超时问题。问题1: A服务使用 http1.1 发送请求到 B 服务超时。问题2: A服务使用一个轻量级 http-sdk(内部http2.0) 发送请求到 C 服务超时。
https://mushroomsir.github.io/timewait_analyzes/ TCP 连接关闭时,会有 4 次通讯(四次挥手),来确认双方都停止收发数据了。如上图,主动关闭方,最后发送 ACK 时,会进入 TIME_WAIT 状态,要等 2MSL 时间后,这条连接才真正消失。TCP 的可靠传输机制要求,被动关闭方(简称 S)要确保最后发送的 FIN K 对方能收到。
https://mushroomsir.github.io/rmb_1/ 货币是交易的媒介,货币的数量应该等同于商品和劳务的总价,如果多了就膨胀,少了就通缩,这是基本经济学法则。现代社会的货币是信用货币,没有真正的锚点,发行机构很容易被外界压力超发货币,后果轻则通货膨胀,重则民不聊生,甚至威胁统治稳定性,例如民国时代的金圆券。
https://mushroomsir.github.io/stock_1/ 最近看了弗朗西斯科·加西亚·帕拉梅斯的《长期投资》,帕拉梅斯被称为西班牙巴菲特。西班牙股票市场体量相对较小,长期收益率也只有 3.6%;但帕拉梅斯 25 年收益 30 倍年化接近15%,管理的资金量最高 65 亿欧元,已经是非常厉害的战绩了。
https://mushroomsir.github.io/distribution_transaction/ 在分布式系统、微服务架构大行其道的今天,服务间互相调用出现失败已经成为常态。如何处理异常,如何保证数据一致性,成为微服务设计过程中,绕不开的一个难题。 在不同的业务场景下,解决方案会有所差异,常见的方式有: