该篇为翻译文:原文地址 https://github.com/go-kit/kit
Go kit 是一个语言工具包,用于在GO 语言中构建微服务。我们可以解决分布式系统和应用程序架构中的常见问题,因此你可以专注于业务开发。
使用理由:
Go 是一种服务器语言,但是他在Facebook,Twitter等公司中,使用的比率不是特别大。许多这些组织已经转向基于JVM的堆栈用于其业务逻辑,这在很大程度上归功于直接支持其微服务架构的库和生态系统。
为了达到更高的成功水平,Go需要的不仅仅是简单的基本语法。他需要一个全面的工具包,用于大规模分布式系统。Go kit是一套包和最佳实践,为任何规模的组织提供了一种全面,强大且可信赖的构建微服务的方法。
目标:
Operate in a heterogeneous SOA — expect to interact with mostly non-Go-kit services
RPC作为主要的消息传递模式
使用序列化传输-而不仅仅是使用HTTP JSON语言
Operate within existing infrastructures — no mandates for specific tools or technologies
依赖项
Go kit 是一个库,是有很多重要的包构成。包管理工具,都会验证包的健壮性。因此我们应该使用包管理工具来管理安装依赖,包括Go kit。为了避免兼容性和可用性问题,Go kit不提供自己的依赖项,也不建议使用第三方导入代理。
我提供一个包管理工具清单,包括dep,gb,glide,gvt,govendor。此外,Go kit使用各种持续集成提供程序来发现和修复兼容性问题。
Service frameworksgizmo, a microservice toolkit from The New York Times ★
go-micro, a microservices client/server library ★
gotalk, async peer communication protocol & library
Kite, a micro-service framework
gocircuit, dynamic cloud orchestration