go-micro 14.9K 微服务框架

最后更新于:2022-04-02 02:49:06

[TOC] > [文档](https://micro.mu/docs/cn/go-micro.html) > [github](https://github.com/micro/go-micro) ## 概述 micro的设计哲学是可插拔的架构理念* **身份验证**\-Auth内置为头等公民。身份验证和授权通过为每个服务提供身份和证书来实现安全的零信任网络。这还包括基于规则的访问控制。 * **动态配置**\-从任何位置加载和热重载动态配置。config接口提供了一种从任何来源(例如env vars,file等)加载应用程序级别config的方法。您可以合并源,甚至定义后备。 * **数据存储**\-一个简单的数据存储界面,用于读取,写入和删除记录。默认情况下,它包括对内存,文件和CockroachDB的支持。状态和持久性已成为原型之外的核心要求,Micro希望将其构建到框架中。 * **服务发现**\-自动服务注册和名称解析。服务发现是微服务开发的核心。当服务A需要与服务B通话时,它需要该服务的位置。默认发现机制是多播DNS(mdns),一种零配置系统。 * **负载平衡**\-基于服务发现的客户端负载平衡。一旦获得了任意数量的服务实例的地址,我们现在需要一种方法来确定要路由到的节点。我们使用随机散列负载平衡来提供服务之间的平均分配,并在出现问题时重试另一个节点。 * **消息编码**\-基于内容类型的动态消息编码。客户端和服务器将使用编解码器以及content-type来为您无缝编码和解码Go类型。可以对各种消息进行编码并从不同的客户端发送。客户端和服务器默认情况下会处理此问题。默认情况下,这包括protobuf和json。 * **RPC客户端/服务器**\-基于RPC的请求/响应,支持双向流。我们为同步通信提供了一个抽象。对服务的请求将被自动解决,负载均衡,拨号和流式传输。 * **异步消息传递**\-PubSub内置为异步通信和事件驱动的体系结构的一等公民。事件通知是微服务开发中的核心模式。默认消息传递系统是HTTP事件消息代理。 * **同步**\-分布式系统通常以最终一致的方式构建。支持分布式锁定和领导作为同步接口。当使用最终一致的数据库或调度时,请使用Sync接口。 * **可插拔接口**\-Go Micro对每个分布式系统抽象都使用Go接口。因此,这些接口是可插拔的,并允许Go Micro与运行时无关。您可以插入任何基础技术 ![](blob:https://www.kancloud.cn/3594df44-b4eb-428b-86f0-cc2384ec2bae) ## /plugins 内容说明 | Directory | Description | | --- | --- | | Broker | PubSub messaging; NATS, NSQ, RabbitMQ, Kafka | | Client | RPC Clients; gRPC, HTTP | | Codec | Message Encoding; BSON, Mercury | | Micro | Micro Toolkit Plugins | | Registry | Service Discovery; Etcd, Gossip, NATS | | Selector | Load balancing; Label, Cache, Static | | Server | RPC Servers; gRPC, HTTP | | Transport | Bidirectional Streaming; NATS, RabbitMQ | | Wrapper | Middleware; Circuit Breakers, Rate Limiting, Tracing, Monitoring | [快速入门](https://github.com/asim/go-micro/tree/master/plugins#usage)
';