Micro In Action基本介绍

这个系列聊一聊 Micro[1], 我们将以实际开发微服务为主线,顺带解析相关功能。从最基本的话题开始,逐步转到高级特性。
Micro 很强大,掌握后使用起来也相当便利。但它的演进速度非常快, 导致其文档有严重缺失和滞后。
很多功能没有文档;很多基本问题不得不去 GitHub 上提 issue 或去 Slack 里面问,又得不到什么反馈。最后, 查看源码成了唯一的学习途径。这对于使用者来说非常不友好,阻碍了 Micro 被更多人所采用。
以上成了我写此系列文章的初衷。希望能对你有所帮助。(注:本系列以 Micro v1.18.0 版本为准)

Micro 到底是个啥

先来看看官网首页[2]的说法:

The simplest way to build, share and collaborate on microservices
Micro powers an open global services platform for developers to build microservices in the cloud and beyond without the hassle of managing infrastructure.

再看看官方文档第 4 页[3]的说法:

Micro is a microservices ecosystem focused on providing products, services and solutions to enable innovation in modern software driven enterprises.

你明白了吗?反正我仍然不明白。在通读了它现有全部文档以后, 我来给你一个更直白的说法:

**Micro 是一组工具,能帮助开发者快速构建和管理微服务。**它包含两个主要组成部分:
1、go-micro[4]: 一个 Golang 微服务开发框架。它是核心。开发者可以利用它快速开发出微服务。这些微服务最常见的形态是 gRPC。

2、micro[5]: 一个命令行工具。虽非必须, 但它可以为 Micro 开发和管理提供很多便利。例如, 生成模板项目, 查看服务运行状态, 调用服务等。此工具也是基于 go-micro 开发的。

除此以外, 实践中还会用到 go-plugins[6],这是一系列插件。涉及服务发现、异步消息、传输协议等方方面面。由于 go-micro 本身被设计成插件式架构, 配合这些插件可以达成非常灵活的组合效果,满足不同需求。当然, 用户也可以自己开发插件,以便进一步扩展。

那么为什么官方定义如此宏大而抽象呢?

因为 Micro 的开发者 Asim Aslam[7] 的野心不止于提供工具。他最近的努力目标是构建“分布式网络”[8] —— 虽然在我看来这个愿景尚有重要问题待解决[9],可行性存疑。

所以如果你只是想加速组织内的微服务开发与治理, 那么关注其核心功能即可。这也是本系列文章的核心关注点

go-micro 的架构

为便于后续理解,先简单介绍 go-micro 的架构。

go-micro 的作用是简化微服务开发、构建分布式系统。而有些工作是在每个分布式系统中都需要的。

所以 go-micro 把这些常见任务统一抽象成接口。这使得开发者不必理会底层实现细节, 降低了学习和开发成本, 快速搭建灵活、健壮的系统。
在这里插入图片描述
from https://micro.mu/
上述图中 Service 是系统中最核心的接口, 它负责将其它接口有机地组织在一起, 协调运行。以后会有文章对其作深入探讨。
举几个其它接口的例子加以说明:

服务发现

这是每个分布式系统首先要解决的问题。go-micro 将此类任务抽象到一个接口中 github.com/micro/go-micro/registry/Registry :

// The registry provides an interface for service discovery
// and an abstraction over varying implementations
// {consul, etcd, zookeeper, ...}
type Registry interface {
   
   Init(...Option) error
   Options() Options
   Register(*Service,
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值