go-kit golang下的微服务模式

Go-kit是一个用于构建Golang微服务的工具集,采用分层模式,包括Transport、Endpoint和Service三层。Transport层处理传输协议,如HTTP和gRPC;Endpoint层类似于Controller,处理请求和响应;Service层则包含业务逻辑。通过中间件模式,可以在不违反分层设计的同时添加日志、请求频率限制等功能。设计上,Go-kit强调洋葱式结构,允许在不同层插入中间件。
摘要由CSDN通过智能技术生成

go-kit是什么?

gokit是构建golang微服务的工具集,能够帮助我们构建基础的、可靠的、可扩展的微服务,使用go语言实现的。

架构设计

gk使用分层模式,如果你是从PHP、Ruby、Django等语言过渡到go语言,那么经典的MVC分层肯定很熟悉,gk的也分为三层:

1.Transport层 (传输)

2.Endpoint层 (终点)

3.Service层 (逻辑服务)

请求从1->3, 响应从3->1

Transports 层

transport 域会绑定到具体的传输协议上,例如:HTTP或者gRPC; 总而言之,微服务可能会支持多种传输协议;这是非常重要且强力的,可以在一个简单的微服务中支持HTTP API和 RPC service。

当实现一个Restful HTTP API时,路由定义在httptransport中. 设置的路由代码如下:


userRegisterHandler := httptransport.NewServer(

selfendpoint.MakeUserRegisterHandler(s),

decodeUserRegisterRequest,

encodeUserRegisterResponse,

opt...,

)

r := mux.NewRouter()

r.Handle("/user/register", userRegisterHandler).Methods("POST")

Endpoints 层

endpoint 就像controller中的action/handler;该层是处理reque

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值