千家信息网

Go kit架构组件有哪些

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本篇内容介绍了"Go kit架构组件有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Go kit
千家信息网最后更新 2024年11月24日Go kit架构组件有哪些

本篇内容介绍了"Go kit架构组件有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Go kit概述

Go kit (http://gokit.io)是一个Go软件包的集合,可以帮助您构建健壮、可靠、可维护的微服务。Go kit提供了用于实现系统可观察性和弹性模式的组件的库,如日志、度量、跟踪、速率限制和断路,这些都是在生产环境中运行微服务的基本要求。Go工具包的优点是它比较固执己见,并且设计用于不同基础设施、消息编码格式和传输层的互操作性。

除了构建微服务的工具包外,它还鼓励在服务中应用程序架构的良好设计原则。Go工具包可以帮助你拥抱扎实的设计原则、领域驱动设计(DDD)和Alistair Cockburn提出的"六边形架构",或者类似的架构方法之一,即Jeffrey Palermo提出的"洋葱架构"和Robert C. Martin提出的"清洁架构"。虽然Go kit被设计成一个微服务工具包,但它也非常适合构建优雅的整体。

Go kit 架构

在基于Gokit 的应用架构中有三个主要组件:

传输层

端点层

服务层

传输层Transports

当您构建基于分布式系统的微服务时,服务通常使用具体的传输方式(如HTTP或gRPC)或使用发布/订阅系统(如NATS)进行通信。Go kit中的运输层与混凝土运输是绑定的。Go kit支持各种传输服务使用HTTP, gRPC, nat, AMQP和Thrift。因为Go kit服务只专注于实现业务逻辑,而不了解具体的传输,所以您可以为同一个服务提供多个传输。例如,一个单独的Go kit服务可以同时使用HTTP和gRPC来公开。

终端Endpoints

端点是服务器和客户机的基本构建块。在Go kit中,主要的消息传递模式是RPC。端点表示单个RPC方法。Go kit服务中的每个服务方法都转换为一个端点,以便在服务器和客户机之间进行RPC风格的通信。每个端点通过使用具体的传输(如HTTP或gRPC),使用传输层向外部世界公开服务方法。单个端点可以通过使用多个传输来公开。

服务Services

业务逻辑在服务中实现。Go套件服务被建模为接口。服务中的业务逻辑包含核心业务逻辑,这些核心业务逻辑不应该包含端点或具体传输(如HTTP或gRPC),也不应该包含对请求和响应消息类型的编码和解码。这将鼓励您为基于Go套件的服务遵循一个干净的架构。每个服务方法通过使用适配器作为端点进行转换,并通过使用具体的传输公开。由于清晰的体系结构,单个Go kit服务可以通过使用多个传输来公开。

Go kit样例

以一个例子介绍Gokit让我们通过一个示例程序来深入了解Go工具包的基础知识。

服务中的业务逻辑

业务逻辑在建模为接口的服务中实现。这里,我们以电子商务域订单聚合为我们的服务建模:

订单服务接口

"Go kit架构组件有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0