0%

介绍

HTTP 协议里的keep-alive机制和长连接协议的keep-alive机制有所不同,HTTP 中的作用是为了复用 TCP 连接,而长连接中大多数作用是为了保活,例如 TCP 通过 keep-alive 心跳包来检测对方是否存活。

HTTP/1.1版本中keep-alive默认是开启的,通过复用 TCP 连接,可以有效的降低 TCP 连接创建的开销,大多数浏览器只允许同时对同一个域名建立 6 个 TCP 连接。

阅读全文 »

背景

现在公司项目都是前后端分离的方式开发,有些时候由于某些新需求开发或者 bug 修改,想要让前端直接连到我本地开发环境进行调试,而前端代码我并没有,只能通过前端部署的测试环境进行测试,最简单的办法就是直接改 host 把后端测试环境的域名指向我本地的 IP,这对于 HTTP 协议的服务来说是很轻易做到的,不过公司的测试环境全部上了 HTTPS,而我本地的服务是 HTTP 协议这样就算是改了 host 也会由于协议不同导致请求失败,所以需要将本地的服务升级成 HTTPS 才行。

阅读全文 »

前言

近期线上 k8s 时不时就会出现一些内部服务间的调用超时问题,通过日志可以得知超时的原因都是出现在域名解析上,并且都是 k8s 内部的域名解析超时,于是直接先将内部域名替换成 k8s service 的 IP,观察一段时间发现没有超时的情况发生了,但是由于使用 service IP 不是长久之计,所以还要去找解决办法。

复现

一开始运维同事在调用方 pod 中使用ab工具对目标服务进行了多次压测,并没有发现有超时的请求,我介入之后分析ab这类 http 压测工具应该都会有 dns 缓存,而我们主要是要测试 dns 服务的性能,于是直接动手撸了一个压测工具只做域名解析,代码如下:

阅读全文 »

前言

国内从 docker hub 拉取镜像时速度非常慢,这里记录下国内的一些免费加速镜像服务器。

阅读全文 »

前言

在公司里经常做技术分享,如果用 PPT 来做的话非常耗费时间,所以一般都是直接用 markdwon 写,但是 markdwon 有个缺点是不能像 PPT 那样翻页展示,于是就 google 了一番看看能不能把 markdown 做成像 PPT 那样的效果,果然已经有这样的技术了,下面就记录下具体步骤。

阅读全文 »

minikube 介绍

minikube 是 k8s 官方维护的一个单机版的 k8s,通过 minikube 可以很方便的在本地机器上安装一套 k8s 环境用于日常的学习与开发。

安装

环境: 虚拟机中的centos:7操作系统,其它情况可以参考官方文档,主要步骤都是类似的。

阅读全文 »

什么是 SAN

SAN(Subject Alternative Name) 是 SSL 标准 x509 中定义的一个扩展。使用了 SAN 字段的 SSL 证书,可以扩展此证书支持的域名,使得一个证书可以支持多个不同域名的解析。

阅读全文 »

前言

docker 其实是一个 C/S 程序,执行docker命令行其实就是在与docker daemon服务进行通讯,这里主要是记录下linux下的 docker 如何配置可以被远程访问。

服务端配置

linux上 docker 默认是使用unix socket进行通讯的,如果要远程访问是不支持的,对此需要开启 tcp协议,以支持外部访问。

阅读全文 »

介绍

Github Actions是 github 官方推出的一款 CI(持续集成)工具,目前还处于Beta版本,需要申请内测资格才能使用,申请成功之后在自己的代码仓库就可以看到Actions了。

阅读全文 »

前言

当初学习 go 语言的原因之一就是看中了 go 可以直接编译成机器码运行,并且支持跨操作系统的交叉编译,这对开发跨操作系统软件提供了极大的便利,这篇文章目的就是记录下 go 是如何交叉编译的。

交叉编译

go 语言里交叉编译支持非常多的操作系统,可以通过go tool dist list命令来查看支持的操作系统列表。

阅读全文 »