beibeijia 2019-10-26
本质上是选择不同的方式将HTTP信息合理的转发至后端处理,而不同的方式相当于不同请求的接收器,接收后再将其转发至不同的后端服务,完成整个请求的调用。
micro 将请求选择不同的方式转发并处理。
micro 支持api/http/web/rpc
四种转发方式,其中rpc
为默认方法。
都是通过路由映射规则
将其转发至不同的客户端服务方法。
api 通过将http请求统一格式化为github.com/micro/go-micro/api/proto
定义的格式进行处理;
rpc 则是自定义proto或者使用服务的proto文件来限制请求格式。
未验证:
web 则是将请求传递至客户端进行处理,后端重新映射为不同的路由,感觉可以用于第三方接口的映射;
event 直接映射为事件方法
micro 支持/rpc直接调用微服务(方便调试),调用方式需要micro api --handler api --enable_rpc true
进行开启。
调用请求:
POST /rpc json格式: { "service": 服务名称, "method": 调用方法, "request": 调用参数 }
思考:
api,http适合写业务逻辑,而service适合无业务逻辑开发。