golang kit 微服务

kit 微服务工具的编程思想与我之前的编程思路有很大的不同。

它的业务实现逻辑是先有服务,再通过Trasport转换为各种通讯方式向客户端提供服务。

而我的习惯是先定义客户端提供的参数信息,再进入到业务逻辑的实现。习惯性的客户端需要什么,我再去实现提供这个服务的业务逻辑。

两种方式实现业务流程是相反的方向。

所以在刚使用kit的时候会很不习惯。总感觉要从后面往前面思考。

但从微服务的角度来说,kit的业务实现方式是更适合微服务场景的,它可以把通讯跟业务完全解耦。实现的服务可以通过任何的通讯方式向客户端提供。

所以在使用Kit开发微服务时,不要先写接口文档,再去实现服务,那样会感觉很怪。

使用Kit 应该先定义服务层server 完成与客户无关的服务

然后再去定义endpoint 和 transport

endpoint 仍然与客户无关,endpoint 是用于定义 server 的 出入参,定义server需要什么参数,处理后会返回什么参数。这一层跟通讯无关。

transport 是kit的入口层,这里对接各种通讯方式,把不同通讯方式传入的参数转换为 endpoint定义的入参和把endpoint返回的参数转换为通讯方式需要格式。


Related Posts

APISIX Golang插件

Apache APISIX 是 Apache 软件基金会下的顶级项目。它是一个具有动态、实时、高性能等特点的云原生 API 网关。它构建于 NGINX + ngx_lua 的技术基础之上,充分利用了 LuaJIT 所提供的强大性能。

Read More