美文网首页go
GO 微服务GO-Micro -(4)Micro和GO-Micr

GO 微服务GO-Micro -(4)Micro和GO-Micr

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

    Micro的介绍

    1.介绍

    来自官方文档的介绍(手打主要是为了方便自己理解)

    • Micro 构建为开源库和工具,以帮助微服务开发.
    • 解决云内外构建分布式系统提供支持。
    • 利用微服务结构模式,提供一组作为平台构建即可的服务
    • 提供简单的可编程的抽象

    2.组成

    GO-Micro 官网信息介绍

    来自官方文档的介绍(手打主要是为了方便自己理解)

    1.介绍

    • go语言的插件化的基础微服务框架
    • 提升开发效率
    • 提供一套微服务的架构,部分微服务工具的集合

    2.特性描述

    • 服务注册/发现,远程过程调用,发布订阅
    • 消息编码,消息解码,并默认支持json以及protobuf
    • 基于rpc的请求响应
    • 异步的消息通讯
    • 通过包装器扩展功能,接口可插拔,可以扩展自己的组件,如服务发现、身份校验、配置管理等
    • 带超时,重试和负载平衡的容错

    3.架构三层设计

    架构图

    设计主要介绍:

    • Micro Runtime - 微服务运行时

    可以理解为,应用层通过些基于微服务应用的组件,我们也可以根据业务需要选择应用组件,例如:api网关负责将微服务接口暴露到公网中,web应用,处理一些网页应用。

    • Mico Service - 服务层

    我们的提供各自业务微服务的逻辑服务等。

    • cloud provider -云平台提供者

    提供和云厂商基础服务的对接能力

    4. Go Mirco 核心模块设计解析

    • 框架 - 使用 go-micro 编写微服务的 Go 框架;服务发现,远程过程调用,发布 / 订阅等.
    • **插件 ** - 框架和运行时的插件,包括 etcd, kubernets, nats, grpc, 等.

    5 . Micro 运行时功能组成:

    工具包集
    运行时 - 使用 micro 微服务运行时环境;API 网关,cli, slackbot, service proxy, 等.
    • Go Micro:用于在Go中编写微服务的插件式RPC框架。它提供了用于服务发现,客户端负载平衡,编码,同步和异步通信库。

    • API: api 网关。使用服务发现具有动态请求路由的单个入口点. API 网关允许您在后端构建可扩展的微服务体系结构,并在前端合并公共 api. micro api 通过发现和可插拔处理程序提供强大的路由,为 http, grpc, Websocket, 发布事件等提供服务. 通俗的说法:主要负责提供将HTTP请求路由到相应微服务的API网关。它充当单个入口点,可以用作反向代理或将HTTP请求转换为RPC。

    • Sidecar:一种对语言透明的RPC代理,具有go-micro作为HTTP端点的所有功能。虽然Go是构建微服务的伟大语言,但您也可能希望使用其他语言,因此Sidecar提供了一种将其他应用程序集成到Micro世界的方法。

    • CLI:一个直接的命令行界面来与你的微服务进行交互。它还使您可以利用Sidecar作为代理,您可能不想直接连接到服务注册表。

    • Bot :Hubot风格的bot,位于您的微服务平台中,可以通过Slack,HipChat,XMPP等进行交互。它通过消息传递提供CLI的功能。可以添加其他命令来自动执行常见的操作任务。

    • Web:用于Micro Web应用程序的仪表板和反向代理。我们认为应该基于微服务建立web应用,因此被视为微服务领域的一等公民。它的行为非常像API反向代理,但也包括对web sockets的支持。

    总结说明:

    Micro Runtime 实现了一些微服务系统常用的应用组件,常用的组件说明。
    
    1.API Gateway
    api网关,统一的Http api入口,可以将我们的微服务接口暴露到公网中。
    
    2.Interactive CLI
    Go Micro微服务的命令行工具,可以用来查询服务,调用服务接口等等。
    
    3.Web Dashboard
    Go Micro微服务web后台,可以用来查询我们正在运行的微服务状态信息。
    

    =======================


    架构图
    • broker : 允许异步消息的消息代理。微服务是事件驱动的体系结构,应该作为一等公民提供消息传递。通知其他服务的事件,而无需担心响应.
    • network: 通过微网络服务构建多云网络。只需跨任何环境连接网络服务,创建单个平面网络即可全局路由. Micro 的网络根据每个数据中心中的本地注册表动态构建路由,确保根据本地设置路由查询.
    • new: 服务模板生成器。创建新的服务模板以快速入门. Micro 提供用于编写微服务的预定义模板。始终以相同的方式启动,构建相同的服务以提高工作效率.
    • proxy: 建立在 Go Micro 上的透明服务代理。将服务发现,负载平衡,容错,消息编码,中间件,监视等卸载到单个位置。独立运行它或与服务一起运行.
    • registry: 注册表提供服务发现以查找其他服务,存储功能丰富的元数据和终结点信息。它是一个服务资源管理器,允许您在运行时集中和动态地存储此信息.
    • store: 有状态是任何系统的必然需求。我们提供密钥值存储,提供简单的状态存储,可在服务之间共享或长期卸载 m 以保持微服务无状态和水平可扩展.
    • web: Web 仪表板允许您浏览服务,描述其终结点,请求和响应格式,甚至直接查询它们。仪表板还包括内置 CLI 的体验,适用于希望动态进入终端的开发人员.

    ————————————————转载自
    原文作者:taadis
    转自链接:https://learnku.com/docs/go-micro/2.x/introduce/8455

    6.特性详解说明

    • Registry:主要负责服务注册和发现功能。如结合consul来实现服务发现。

    • Selector:selector主要的作用是实现服务的负载。流程是:某个客户端发起请求时---》首先查询服务注册表--》返回当前系统中可用服务临时表,这个临时表是会定时的刷新的,,然后从临时表中选择其中一个节点进行查询,保证节点可用。

    • Broker:Broker是go-micro框架中事件发布和订阅的接口,主要是使用用消息队列的方式实现服务之间的信息的接收和发布,或进行系统间的异步通讯。

    • Codec:go-micro中数据传输过程中的编码和解码接口。go-micro中有多重编码方式,默认的实现方式是protobuf,除此之外,还有json等格式。

    • Transport:go-micro框架中的通信接口,有很多的实现方案可以选择,默认使用的是http形式的通信方式,除此以外,还有grpc等通信方式。

    • Client和Server:分别是go-micro中的客户端接口和服务端接口。client负责调用,server负责等待请求处理。

    ======================

    相关文章

      网友评论

        本文标题:GO 微服务GO-Micro -(4)Micro和GO-Micr

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