本文由 简悦 SimpRead 转码, 原文地址 https://colobu.com/2017/04/17/dive-into-gRPC-interceptor/
gRPC-Go 增加了拦截器 (interceptor) 的功能, 就像 Java Servlet 中的 filter 一样,可以对 RPC 的请求和响应进行拦截处理,而且既可以在客户端进行拦截,也可以对服务器端进行拦截。
本文由 简悦 SimpRead 转码, 原文地址 https://colobu.com/2017/04/17/dive-into-gRPC-interceptor/
gRPC-Go 增加了拦截器 (interceptor) 的功能, 就像 Java Servlet 中的 filter 一样,可以对 RPC 的请求和响应进行拦截处理,而且既可以在客户端进行拦截,也可以对服务器端进行拦截。
golang 标准库的日志框架非常简单,仅仅提供了 print,panic 和 fatal 三个函数对于更精细的日志级别、日志文件分割以及日志分发等方面并没有提供支持。所以催生了很多第三方的日志库,但是在 golang 的世界里,没有一个日志库像 slf4j 那样在 Java 中具有绝对统治地位。golang 中,流行的日志框架包括 logrus、zap、zerolog、seelog 等。 logrus 是目前 Github 上 star 数量最多的日志库,目前 (2018.08,下同)star 数量为 8119,fork 数为 1031。logrus 功能强大,性能高效,而且具有高度灵活性,提供了自定义插件的功能。很多开源项目,如 docker,prometheus 等,都是用了 logrus 来记录其日志。 zap 是 Uber 推出的一个快速、结构化的分级日志库。具有强大的 ad-hoc 分析功能,并且具有灵活的仪表盘。zap 目前在 GitHub 上的 star 数量约为 4.3k。 seelog 提供了灵活的异步调度、格式化和过滤功能。目前在 GitHub 上也有约 1.1k。
etcd
是随着CoreOS
项目一起成长起来的,随着 Golang 和 CoreOS 等项目在开源社区日益火热, etcd
作为一个高可用、强一致性的分布式 Key-Value 存储系统被越来越多的开发人员关注和使用。
使用go mod(1.11)安装grpc
在golang中创建调用图
基于 go+etcd 实现分布式锁,主要使用的是租约机制
在我们使用golang开发项目时,会遇到私有仓库问题,本文章讲解golang中私有仓库的使用