(译) 如何优雅的关闭Go Channel

Channel关闭原则

不要在消费端关闭channel,不要在有多个并行的生产者时对channel执行关闭操作。

也就是说应该只在[唯一的或者最后唯一剩下]的生产者协程中关闭channel,来通知消费者已经没有值可以继续读了。只要坚持这个原则,就可以确保向一个已经关闭的channel发送数据的情况不可能发生。

(译) Go的工具概述

有时我会被问到“你为什么喜欢使用Go?” 我经常提到的一件事是作为go命令的一部分与语言一起存在的周到工具。我每天都会使用一些工具(例如go fmt和)go build,而其他类似工具go tool pprof仅用于帮助解决特定问题。但是在所有情况下,我都很欣赏它们使我的项目管理和维护更加容易的事实。

Golang 神级版本管理工具

对于 Golang 开发而言,Golang 语言版本的迭代速度是惊人的,几乎每几个月就需要更新一次小版本。对于 Golang 程序员来说,最渴望的特性莫过于 Go 2.0 的新特性,现在 Go 的版本已经是 1.14,相信在不久的将来会盼望到 2.0 的到来。但是 Golang 采用的是逐步迭代小版本,最终演化为最终版本,作为 Golang 程序员需要对每一个小版本的特性进行学习,因此管理 Go 版本的工具是迫在眉睫的问题,现在为大家介绍一个神级版本管理工具。

(译)自定义Go Json的序列化方法

Go如何编写Grpc测试

我重写了公司原有的代码,对pb文件进行了更改,为了保持原有的功能保持正确性,我不得不进行测试,但是我没有找到任何一个关于Golang Grpc的测试,通过查找,可以不用开启Grcp客户端进行测试,只需要通过反射就可以调用到Grcp的方法,并进行测试。

Go 限流算法实战

由于 API 接口无法控制调用方的行为,因此当遇到瞬时请求量激增时,会导致接口占用过多服务器资源,使得其他请求响应速度降低或是超时,更有甚者可能导致服务器宕机。

限流指对应用服务的请求进行限制,例如某一接口的请求限制为 100 个每秒, 对超过限制的请求则进行快速失败或丢弃。

限流可以应对:

  • 热点业务带来的突发请求;
  • 调用方 bug 导致的突发请求;
  • 恶意攻击请求。

因此,对于公开的接口最好采取限流措施。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×