go-kit是一套帮助开发者构建健壮、可靠、可维护的微服务的golang工具包集合。最初应用于大型企业开发,可是很快也开始为小型初创企业和组织服务。git
go-kit自上而下采用三层架构方式:Transport、Endpoint、Service。Transport层主要负责与传输协议HTTP、gRPC、Thrift等相关的逻辑;Endpoint层主要负责request/response格式的转换,以及公用拦截器相关的逻辑;Service层则专一于业务逻辑。Endpoint层做为go-kit的核心,采用相似洋葱的模型,提供了对日志、限流、熔断、链路追踪、服务监控等方面的扩展能力。为了帮助开发者构建微服务,go-kit提供了对consul、etcd、zookeeper、eureka等注册中心的支持。github
本人经过学习官方网站、github实例以及国内外的一些与go-kit相关的文章,对go-kit的使用方式进行了学习,并经过编写实例、在社区分享文章进行了强化。但愿与广大go-kit的爱好者多多沟通,共同进步。golang
这篇文档将对过去一段时间写的文章与实例程序进行汇总,做为一个目录供你们交流。本系列文档以算术运算服务为基础,逐步扩展与微服务有关的功能。微信
以上为目前go-kit系列的文章,每篇文章都对应示例代码,能够经过github获取源代码。我会随着实际的学习状况,对该系列文章不断完善。架构
因为本人的水平有限,文章中确定存在描述不当或者错误的地方,但愿你们批评指正。微服务
本文首发于本人微信公众号【兮一昂吧】,欢迎扫码关注!工具