微服务架构系列 - 框架篇:Go Micro 初探及其底层架构

- 1 min

微服务架构系列(五)

前面几篇分享学院君已经给大家介绍了微服务的背景和概念、总体设计、适用场景、服务拆分以及要提前做好的技术保障,接下来我们正式开始介绍微服务的开发。目前,市面上已经有很多符合我们前面介绍的满足微服务架构的开源 RPC 框架,比如 Dubbo、Spring Cloud、gRPC、Thrift 等,但由于本系列教程基于 PHP + Go 进行开发,所以,我们选择一个基于 Go 语言生态里的 Go Micro 框架作为微服务开发框架。

Go Micro 简介与设计理念

Go Micro 是一个基于 Go 语言编写的、用于构建微服务的基础框架,提供了分布式开发所需的核心组件,包括 RPC 和事件驱动通信等。

它的设计哲学是「可插拔」的插件化架构,其核心专注于提供底层的接口定义和基础工具,这些底层接口可以兼容各种实现。例如 Go Micro 默认通过 consul 进行服务发现,通过 HTTP 协议进行通信,通过 protobuf 和 json 进行编解码,以便你可以基于这些开箱提供的组件快速启动,但是如果需要的话,你也可以通过符合底层接口定义的其他组件替换默认组件,比如通过 etcd 或 zookeeper 进行服务发现,这也是插件化架构的优势所在:不需要修改任何底层代码即可实现上层组件的替换。

Go Micro 基础架构介绍

Go Micro 框架的基础架构如下,由 8 个核心接口组成,每个接口都有默认实现:

img

Go Micro 官方创建了一个 Plugins 仓库,用于维护 Go Micro 核心接口支持的可替换组件:

img

小结

通过上述介绍,可以看到,Go Micro 简单轻巧、易于上手、功能强大、扩展方便,是基于 Go 语言进行微服务架构时非常值得推荐的一个 RPC 框架,基于其核心功能及插件,我们可以轻松解决之前讨论的微服务架构引入的需要解决的问题:

接下来,我们将基于 Go Micro 微服务框架演示如何基于 PHP + Go 落地微服务架构。

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora