Go Micro是一个微服务开发框架。Go Micro提供了分布式系统开发的核心要求,包括RPC和事件驱动的通信。
特点
- 自动服务注册与名称解析:服务发现是微服务开发中的核心,用于解析服务名与地址。
consul
是Go Micro
默认的服务发现注册中心。发现系统可插拔,其他插件像etcd
,kubernetes
,zookeeper
。 - 负载均衡:在服务发现之上构建了负载均衡机制。使用随机处理过的哈希负载均衡机制来保证对服务请求颁布的均匀分布。
- 消息编码:支持基于内容类型(
content-type
)动态编码消息。客户端和服务端会一起使用content-type
格式来对Go进行无缝编/解码。content-type
默认包含proto-rpc
和json-rpc
。 - Request/Response:
RPC
通信基于支持双向流的请求/响应方式,提供同步通信机制,请求发送到服务时,会自动解析,负载均衡,拨号,转成字节流。 - 异步消息:发布订阅等功能内置在异步通信与事件驱动架构中,事件通知在微服务开发中处于核心位置。默认的消息传递使用点到点http/1.1,激活tls时则使用http2。
- 可插拔接口:
Go Micro
为每个分布式系统抽象出接口,因此,Go Micro
的接口都是可插拔的,允许其在运行时不可知的情况下仍可支持。