简介 在Go服务中,对于每个请求,都会起一个协程去处理.在处理协程中,也会起很多协程去访问资源,比如数据库,比如RPC,这些协程还需要访问请求维度的一些信息比如说请求方的身份,授权信息等等.当一个请求被取消或者超时的时候,其他所有协程都应该立即被取消以释放资源. Golang的context包就是用来传递请求维度的数据.信号.超时给处理该请求的所有协程的.在处理请求的方法调用链中,必须传递context,当然也可以使用WithCancel, WithDeadline, WithTimeout或者…