远程连接docker daemon

Docker 在运行时分为 Docker 引擎(也就是服务端守护进程)和客户端工具。Docker 的引擎提供了一组 REST API,被称为 Docker Remote API,而如 docker 命令这样的客户端工具,则是通过这组 API 与 Docker 引擎交互,从而完成各种功能。因此,虽然表面上我们好像是在本机执行各种 docker 功能,但实际上,一切都是使用的远程调用形式在服务端(Docker 引擎)完成。也因为这种 C/S 设计,让我们操作远程服务器的 Docker 引擎变得轻而易举。

阅读更多

SimpleHTTPServer-go的命令行小工具

之前用过python的python -m SimpleHTTPServer,觉得使用起来还是挺方便的,今天有空也用golang实现了一个类似的功能,暂且编译为ezhttp。

阅读更多

【转】 OpenResty实现websocket的全双工接收推送

很早就知道春哥有这个 lua-resty-websocket 的包了,可以让openresty具备websocket的通信能力,一直也以为这个包和node.js或者golang等其他语言的websocket包一样好用,可以很容易的实现全双工的操作,单播,多播,广播等功能。

阅读更多

【转】 Go文件操作大全

介绍

万物皆文件

UNIX 的一个基础设计就是”万物皆文件”(everything is a file)。我们不必知道一个文件到底映射成什么,操作系统的设备驱动抽象成文件。操作系统为设备提供了文件格式的接口。

阅读更多

OpenResty实现限流的几种方式

在开发 api 网关的时,做过一些简单的限流,比如说静态拦截和动态拦截;静态拦截说白了就是限流某一个接口在一定时间窗口的请求数。用户可以在系统上给他们的接口配置一个每秒最大调用量,如果超过这个限制,则拒绝服务此接口,而动态拦截其实也是基于静态拦截进行改进,我们可以依据当前系统的响应时间来动态调整限流的阈值,如果响应较快则可以把阈值调的大一些,放过更多请求,反之则自动降低限流阈值,只使少量请求通过。

阅读更多

常用限流算法总结

近来在看开涛的《亿级流量》这本书,看到了限流这个章节,因为自己平时项目中也经常用到类似的场景,索性系统的整理学习一番,把这块的相关技术理解透彻。

阅读更多

lapis 参考文档整理

之前空的时候翻译了一些 OpenRestyweb 框架 Lapis 的一些文档,当然只是翻译了我自己项目中用到的部分(MoonScriptdatabase等,由于我自己没使用到也就没有翻译),为了方便自己以后查看,还是整理一下索引目录吧。

阅读更多

OpenResty之单元测试

当项目功能开发完毕时,我们常常为了保证自己代码的功能正常,符合自己的预期结果而编写单元测试,并且以后当我们修改代码后,只需要跑一边单元测试便可以看我们有没有把代码给改残了。所以单元测试的重要性不言而喻。

阅读更多

golang json反序列化遇到的问题

golang中,当浮点数超过一定数值的时候,golang会把它弄成科学计数法的形式进行显示(好像只要大于七位数就变成科学计数法了)

1
2
3
var val float64
val = 1000000
fmt.Println(val) // ==> 1e+06

阅读更多

golang对自定义类型排序

在实际项目中,我们常常需要根据一个结构体类型的某个字段进行排序。之前遇到这个问题不知道如何解决,后来在网上搜索了相关问题,找到了一些好的解决方案,此处参考下,做个总结吧。

由于 golangsort 包本身就提供了相应的功能, 我们就没必要重复的造个轮子了,来看看如何利用 sort 包来实现吧。

阅读更多