溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go kit架構組件有哪些

發布時間:2021-12-20 15:57:24 來源:億速云 閱讀:179 作者:iii 欄目:大數據

本篇內容介紹了“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架構組件有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女