go

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

2021-01-18  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读