Micro与Go-mirco
Micro 概述
Micro is a platform for cloud native development.git
Micro是一个微服务工具包,包括:github
API
提供并将HTTP请求路由到相应微服务的API网关。它充当微服务访问的单一入口,将HTTP请求转换为RPC并转发给相应的服务也能够用做反向代理。web
Web
UI是go-micro的web版本,容许经过UI交互访问环境。在将来,它也将是一种聚合微型Web服务的方式。它包含一种Web应用程序的代理方式。将/[name]经过注册表路由到相应的服务。Web UI将前缀“go.micro.web。”(能够配置)添加到名称中,在注册表中查找它,而后将进行反向代理。算法
Sidecar
go-micro的HTTP接口版本。这是将非Go应用程序集成到微环境中的一种方式。
服务器
Bot
Hubot风格的bot,位于您的微服务平台中,能够经过Slack,HipChat,XMPP等进行交互。它经过消息传递提供CLI的功能。能够添加其余命令来自动执行常见的操做任务。
负载均衡
CLI
一个直接的命令行界面来与你的微服务进行交互,它提供了一种观察和与运行环境交互的方式。框架
Go-Micro
用于在Go中编写微服务的插件式RPC框架。它提供了用于服务发现,客户端负载平衡,编码,同步和异步通讯库。go-micro 是一个独立的库,能够独立于其余工具包使用。异步
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是官方提供的一个包,它是经过编译后的可执行文件来协助咱们开发。