0%

Go Micro微服务架构特性

本文主要概述M3O微服务架构特性

总览

Go Micro 是微服务开发的框架。

Go Micro 提供了分布式系统开发的核心要求,包括 RPC 和事件驱动的通信。 微哲学是可插拔体系结构的默认设置。 我们提供了默认设置,可帮助您快速入门,但所有内容都可以轻松换出。

特征

Go Micro 主要功能:

  • 服务发现(Service Discovery)- 自动服务注册和名称解析,服务发现是微服务开发的核心。 当服务A需要与服务B通信时,它需要该服务的位置。 默认发现机制是多播 DNS(mdns),一种零配置系统,推荐使用 etcd 。

  • 负载平衡(Load Balancing)- 基于服务发现的客户端负载平衡。 当获得了服务的任意数量的实例的地址,我们现在需要一种方法来确定要路由到的节点。 我们使用随机散列负载平衡来提供服务之间的平均分配,并在出现问题时重试其他节点。

  • 消息编码 (Message Encoding)- 基于内容类型的动态消息编码。 客户端和服务端会一起使用content-type的格式来对Go进行无缝编/解码。各种各样的消息被编码会发送到不同的客户端,客户端服服务端默认会处理这些消息。 默认情况下,包括protobuf 和 json 。

  • 请求/响应 (Request/Response) - 基于 RPC 的请求/响应,支持双向流。 我们为同步通信提供了一个抽象。 对服务的请求将被自动解决,负载均衡,拨号和流式传输。 默认传输方式是gRPC 。

  • 异步消息传递(Async Messaging) - 发布订阅(PubSub)头等功能内置在异步通信与事件驱动架构中。事件通知在微服务开发中处于核心位置。默认的消息传送使用点到点http/1.1,激活tls时则使用http2。

  • 可插拔接口(Pluggable Interfaces)- Go Micro对每个分布式系统抽象都使用Go接口。 因此,这些接口是可插入的,并允许Go Micro与运行时无关。 您可以插入任何基础技术。 在github.com/micro/go-plugins中找到插件。