美文网首页go
GO 微服务GO-Micro -(5)来自GO 夜读 关于Go-

GO 微服务GO-Micro -(5)来自GO 夜读 关于Go-

作者: 小钟钟同学 | 来源:发表于2021-01-18 15:30 被阅读0次

    来自GO 夜读 学习笔记

    学习来源:https://www.bilibili.com/video/BV18E411o7c5?from=search&seid=1560428182298849204

    (1)关于Micro Api的说明

    image.png image.png

    (2)关于Micro web的说明

    image.png

    (3)关于Micro Proxy的说明

    image.png

    (4) 关于GO-Micro 框架模块

    image.png

    (5)关于GO-Micro 基础组件调用关系

    image.png

    流程说明:

    每一个Service服务都有一个Cilent 和Server

    :1 Service启动时候调用注册模块,注册的到我们的注册中 Consul.
    
    :2 另一个服务客户端Cilent ,如果需要调用另一个服务Server,首选这个服务的客户端Cilent 去调用Selector选择器查询,
    
    :3 Selector选择器通过Registry再去查询需要元数据信息,
    如果元数据信息没有不存在的话 Registry会想注册中心Consul获取服务元数据信息,然后返返回给Registry
    
    :4 Registry向想注册中心Consul获取服务元数据信息,然后返返回给Registry传递给客户端
    
    :5 客户端开始对相关的元数据信息进行编码,编码完成后,就发送 客户端Cilent 侧的Transport模块
    
    :6 客户端Cilent 侧Transport模块 发送到客户端Cilent 侧Codec模块进行编码----
    
    :7 Cilent 侧Codec模块 将消息发送另一个服务Server中的 Codec 然后进行解码,然后进行业务逻辑处理
    

    go-micro中服务发现和注册:

    image.png

    (6)关于GO-Micro 其他组件

    image.png

    (7)关于GO-Micro 中的Registry注册组件

    image.png
    注册主键主要几个接口信息:
    • 服务的注册,服务的卸载,服务的获取,监听服务变动,获取服务列表
    • 服务和服务间是不是直接调用中间件,是通过自身内部注册模块进行调用中间件查询的

    GO-Micro 中的注册类型:

    :1 基于通用型注册中心,如Etcd、Consul、Zookeeper、Eureka(已停更了)
    :2 基于网络广播,如mDNS、Gossip
    :3 基于消息中间件,如NATs
    

    Registry注册组件类型介绍

    (1) Registry注册方式---通用性注册中心,Consul注册方式类型(中心化):
    image.png

    流程:

    :1 服务启动后把元数据信息注册到注册中心
    :2 需要服务调用就问Consul获取
    
    (2) Registry注册方式---基于广播域名解析的方法【mDNS:多路广播域名解析】:
    image.png

    流程:
    假设存在4个服务 (M A,B,C四个服务)

    :1 M 问谁是服务A,广播一个谁是A的消息
    :2 广播到所有的服务上,问谁是A服务(A,B,C服务都收到广播信息)
    :3  B,C服务不响应,A服务响应(广播消息出去,此时其他服务都知道A再哪里,B,C也收到)
    
    (3) Registry注册方式---基于消息中间件【基于NATs消息系统Pub/Sub注册】:
    image.png

    (8)关于GO-Micro 中的Selector 选择器组件

    image.png

    8.1)职责

    负责负载均衡

    8.2)工作原理

    假设有三台服务(B1,B2,B3),A服务调用B服务的时候
    流程:

    :1  A服务客户端Client,调用Selector选择器组件查询B服务的地址信息
    
    :2  A服务客户端Client中的Selector组件回去 A服务客户端Client中的Registry组件获取B的信息,选择器Selector拿到相关的B信息(3台的列表信息)
    
    :3  A服务客户端Client中的Selector组件根据算法(轮询,随机)获取列表中的一台B服务的信息
    

    (9)关于GO-Micro 中的Transport 同步组件

    image.png
    image.png
    image.png

    (10)关于GO-Micro 中的插件化

    image.png image.png

    相关文章

      网友评论

        本文标题:GO 微服务GO-Micro -(5)来自GO 夜读 关于Go-

        本文链接:https://www.haomeiwen.com/subject/qaxxzktx.html