• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Go Micro 微服务总结

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Go micro 微服务总结

 

对外提供restful. api 服务的是通过 api 框架或原生写法 -> 直接调用的是 srv

内部调用 客户端去访问 服务端

 

直接 /rpc 调用的时候会绕过 restful. api(但是 micro api 网关是必须启动的,网关也可配置) -> 直接调用srv (http请求 会自动转成 rpc调用)

 

API 网关一般作用:

封装了内部系统架构并且提供了每个客户端定制的API、身份验证、监控、负载均衡、缓存、数据通信协议转换、统一维护流量路由表

 

至于向加一些其他功能比如鉴权则需要实现Micro Api的插件,可以参考项目中的实现

 

Micro Api通过接收前端HTTP请求,将请求转换之后发送到内部服务,对于服务间的请求,A服务可以直接使用go语言的gRPC客户端调用B服务的接口。相比在使用Restful方式完成服务之间的相互访问,gRPC能提供更好的性能,更低的延迟,并且生来适合与分布式系统。

 

用户身份鉴定:功能是除了登录功能的每一个API都会调用的功能。统一在api 网关处理。对于容器化与无状态服务,可以使用JWT进行身份验证,以下是一个例子,从Authorization中解析出用户信息然后传递给网关后的服务。

 

server 服务端:

Server包是使用编写服务的构建包,可以命名服务,注册请求处理器,增加中间件等等

 

客户端:

客户端提供接口来创建向服务端的请求。与服务端类似,它构建在其它包之上,它提供独立的接口,通过注册中心来基于名称发现服务,基于选择器(selector)来负载均衡,使用transport、broker处理同步、异步消息。

 

服务熔断:当服务A调用服务B的请求满足一定的规则,比如10秒内请求数达到20个,并且有一半以上的请求失败了,此时我们通过切断对服务B的调用来保护系统的整体响应,这种操作即为服务熔断。

 

服务降级:在服务B被熔断之后,服务A不会真正地调用服务B。取而代之的是,我们在服务A中定义一个服务降级逻辑(通常是一个fallback接口),此时服务A会直接调用服务降级逻辑快速获取返回结果。

 

微服务注册与发现:

服务的注册发现对于微服务来说是一个非常重要的环节,在单一架构应用中,service 之间的互相调用,通过一个固定的 host 和 port 来发起 REST 或者 RPC 来调用,但是在微服务架构中,各个服务往往是动态变化的,所以需要一个服务发现机制来发送客户端的请求到动态的 service 实例中去。

 

 

golang学习需要转换的思维:

数据处理和类型转换以及 类型定义

 

同一份代码在多个地方部署,最后注册成同一个服务名称,不同的ip地址(也可以相同)或端口号

 

Cli 命令行的方式调用不需要运行 micro api 网关,不需要 启动 go.micro.api.auth 服务。是直接调用 go.micro.srv.auth 服务


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[go]微服务概述发布时间:2022-07-10
下一篇:
Go 测试单个方法发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap