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

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-Micro)