zoukankan      html  css  js  c++  java
  • Go Micro 微服务总结

    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 服务

  • 相关阅读:
    【青橙商城-管理后台开发】2. 商品服务模块搭建
    【青橙商城-管理后台开发】1.公共模块搭建
    Oracle对象-视图和索引
    Oracle的查询-分页查询
    Oracle的查询-子查询
    Oracle的查询-自连接概念和联系
    Oracle的查询-多表查询中的一些概念
    Oracle的查询-分组查询
    Oracle的查询-多行查询
    dotnet 开源库
  • 原文地址:https://www.cnblogs.com/winyh/p/12260067.html
Copyright © 2011-2022 走看看