micro/micro:分布式微服务云操作系统


Micro 解决了在云中构建服务的关键要求。它利用微服务架构模式并提供一组服务作为平台的构建块。Micro 处理分布式系统的复杂性,并提供更简单的可编程抽象来构建。
Micro 是一个云原生开发平台。它解决了在云中构建服务的关键要求。Micro 利用微服务架构模式并提供一组充当平台构建块的服务。Micro 处理分布式系统的复杂性,并提供更简单的可编程抽象来构建。
Micro 是一个包罗万象的端到端平台体验,从源代码到运行以及超越,以开发人员为先。
将 Micro 视为面向云的 Android。
Micro 专注于微服务开发模式,它来自于unix哲学,即编写能做好一件事的工具。我们认为,在Rails单体网络应用中,你所了解的数据库表层面的领域边界转移到网络和命名层的服务边界。
例如,在Rails应用中,博客应用可能由帖子、评论、标签等表组成,但在Micro中,这些将被定义为独立的服务。这些作为Micro的服务,可以很好地做一件事,并在必要时通过网络或pubsub消息传递进行通信。
Micro是以这种服务开发模式建立的,这就是为什么底层平台定义了编写这些服务以及从外部访问它们所需的基元。Micro包括一个Go服务框架,这使得快速启动变得超级简单。
 
以下是构成 Micro 的核心组件。
服务器
Micro 构建为微服务架构,并抽象出底层基础架构的复杂性。我们将其组合为用户的单个逻辑服务器,但将其分解为可以插入任何底层系统的各种构建块原语。
服务器由以下服务组成。

  • API - HTTP 网关,它使用基于路径的解析将 http/json 请求动态映射到 RPC
  • Auth - 使用 jwt 令牌和基于规则的访问控制开箱即用的身份验证和授权。
  • Broker - 用于异步通信和分发通知的临时 pubsub 消息传递
  • 配置- 服务级别配置的动态配置和机密管理,无需重新启动
  • 事件- 具有有序消息传递、从偏移量重放和持久存储的事件流
  • 网络- 所有内部请求流量的服务间网络、隔离和路由平面
  • 代理- 用于远程访问和任何外部 grpc 请求流量的身份感知代理
  • 运行时- 服务生命周期和流程管理,支持源代码运行自动构建
  • Registry - 具有丰富元数据的集中式服务发现和 API 端点浏览器
  • 存储- 具有 TTL 到期和持久性 crud 的键值存储,以保持微服务无状态

  
框架
Micro 还包含一个用于服务开发的内置 Go 框架。Go 框架使编写服务变得非常简单,而无需拼凑成行的样板代码。默认自动配置和初始化,只需导入即可快速上手。