Go如何实现HTTP请求限流

在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流!为了保证在业务高峰期,线上系统也能保证一定的弹性和稳定性,最有效的方案就是进行服务降级了,而限流就是降级系统最常采用的方案之一。 这里为大家推荐一个开源库https://github.com/didip/tollbooth  但是,如果您想要一些简单的、轻量级的或者只是想要学习的东西,实现自己的中间件来处理速率限制并不困难。今天我们就来聊聊如何实现自己的一个限流中间件 首先我们需要安装一个提供了 Token bucket (令牌桶算法)的依赖包,上面提到的toolbooth 的实现也是基于它实现的 $ go get golang.org/x/time/rate 好了我们先看Demo代码的实现: Continue Reading …

Java to Go 学习指南

这篇指南为了能够帮助Java程序员快速深入了解Go语言特性! 主要区别 面向对象: Go 语言的面向对象编程(OOP)非常简洁而优雅。说它简洁,简洁之处在于,它没有了OOP中很多概念,比如:继承、虚函数、构造函数和析构函数、隐藏的this指针等等。说它优雅,是它的面向对象(OOP)是语言类型系统(type system)中的天然的一部分。整个类型系统通过接口(interface)串联,浑然一体。 employee.go package employee import Continue Reading …

回归Sina SAE

上一次使用SAE还是几年前了,那时候还在大学。买不起VPS,一年几百块钱的VPS得花掉半个月的零花钱!当时PaaS刚刚火起来,最开始用Google的GAE翻过墙!后来Sina也退出了自己的Paas平台,当时算是比较早的用户吧,做了实名认证为了获得云豆,还弄了开发者认证。总之学生时代很穷!用了一段时间之后。觉得Paas可玩性太低了。工作之后就开始自己折腾VPS! 博客从多个厂商迁过来迁过去!有时候因为懒不想导数据,也没做备份。很多时候很多东西就丢掉了! 这次下定决心,好好维护自己的博客了!不再折腾了,WordPress程序本身使用了SAE!而文件存储使用了阿里云的OSS,虽然Sina cloud 也有自己的SCC,但是没有好用的插件最终还是选择了阿里云! 总之花了半天时间,把整个环境弄好了,以后就好好写博客!