P2P 内网穿透通信与端口复用|Golang 代码示例

一、前言 一般情况下,如果要实现聊天即时通讯,都要借助公网服务器作为中继节点对消息进行转发。 例如用户A和用户B进行即时通讯的具体步骤如下所示 首先用户A和B需要和公网服务器建立长连接 ClientA ====> (建立长连接) ===> 公网服务器 `ClientB ====> (建立长连接) =…

Prometheus Histogram + Grafana 绘制接口响应热点图

一、前言 第一版的接口响应时长分布统计图表是根据 Prometheus Counter 数据类型制作的折线图,它大概长下面这个样子。 原理其实也非常简单,我就是将请求分组进行统计。大致的代码就是下面这个样子 奈何领导说接口统计最好不要用 counter 计数器,也不要做成折线图。要使用 Promet…

Golang 拉取 Github 私有库的姿势

我们的 Go 项目拉取依赖时,默认使用的是 https 协议的 git clone 。因此当你的 Golang 项目位于 Github 的私有仓库时,而你本地的项目又依赖这个私有库,此时你应当先设置SSH 保证 Git 能无密码拉取到该依赖。 其次你还必须要设置 GOPRIVATE ,当你设置后, …

Drone for Github|Golang CI集成

一、前言 Drone 是一套基于容器构建的CI工具,部署配置起来非常方便。 它的官网在这https://www.drone.io/ 二、安装部署 话不多说,首先就是需要安装它,官方提供一套基于容器的单机部署方式。 你需要自行安装dokcer 与 docker-compose 安装完 docker-c…

Goland 配置 Openresty Lua 语法提示

最近开始学习openresty,因此首先需要的就是让编辑器支持 Lua 语法的提示。 我自身是一名 Golang 开发人员,因此用的编辑器自然是 jetbrians 系列的 Goland 。 第一步:去扩展中安装 emmylua 安装后重启编辑器, Lua 的基本语法就有提示了 emmylua 自身…