「go-micro」学习笔记1——Micro 与 Go-Micro

Micro 概述

Micro is a platform for cloud native development.git

Micro是一个微服务工具包,包括:github

API

提供并将HTTP请求路由到相应微服务的API网关。它充当微服务访问的单一入口,将HTTP请求转换为RPC并转发给相应的服务也能够用做反向代理。web

image

Web

UI是go-micro的web版本,容许经过UI交互访问环境。在将来,它也将是一种聚合微型Web服务的方式。它包含一种Web应用程序的代理方式。将/[name]经过注册表路由到相应的服务。Web UI将前缀“go.micro.web。”(能够配置)添加到名称中,在注册表中查找它,而后将进行反向代理。算法

image

Sidecar

go-micro的HTTP接口版本。这是将非Go应用程序集成到微环境中的一种方式。
image
服务器

Bot

Hubot风格的bot,位于您的微服务平台中,能够经过Slack,HipChat,XMPP等进行交互。它经过消息传递提供CLI的功能。能够添加其余命令来自动执行常见的操做任务。
image
负载均衡

CLI

一个直接的命令行界面来与你的微服务进行交互,它提供了一种观察和与运行环境交互的方式。框架

Go-Micro

用于在Go中编写微服务的插件式RPC框架。它提供了用于服务发现,客户端负载平衡,编码,同步和异步通讯库。go-micro 是一个独立的库,能够独立于其余工具包使用。异步

image
go-micro是组件化的框架,每个基础功能都是一个interface,方便扩展。同时,组件又是分层的,上层基于下层功能向上提供服务,总体构成go-micro框架。go-micro框架的构成组件有:
ide

Registry

提供服务发现机制:解析服务名字至服务地址。目前支持的注册中心有consul、etcd、 zookeeper、dns、gossip等微服务

Selector

选择器经过选择提供负载均衡机制。当客户端向服务器发出请求时,它将首先查询服务的注册表。这一般会返回一个表示服务的正在运行的节点列表。选择器将选择这些节点中的一个用于查询。屡次调用选择器将容许使用平衡算法。目前的方法是循环法,随机哈希和黑名单。

Broker

发布和订阅的可插入接口,服务之间基于消息中间件的异步通讯方式,默认使用http方式,线上一般使用消息中间件,如Nats、Kafka、RabbitMQ 和 http(用于开发)。

Transport

经过点对点传输消息的可插拔接口。目前的实现是http,rabbitmq和nats。经过提供这种抽象,运输能够无缝地换出。。

Codec

服务之间消息的编码/解码。

Plugins

提供go-micro的micro/go-plugins插件。

Server

服务器是构建正在运行的微服务的接口。它提供了一种提供RPC请求的方法。该组件基于上面的Registry/Selector/Transport/Broker组件,对外提供一个统一的服务请求入口。

Client

提供一种制做RPC查询的方法访问微服务的客户端。它结合了注册表,选择器,代理和传输。它还提供重试,超时,使用上下文等。相似Server组件,它也是经过Registry/Selector/Transport/Broker组件实现查找服务、负载均衡、同步通讯、异步消息等功能。

总结

go-micro 是一个微服务的框架,而micro是官方提供的一个包,它是经过编译后的可执行文件来协助咱们开发。

相关文章
相关标签/搜索