什么是Micro
Micro是一个专注于简化分布式系统的开发的微服务生态系统,是一个工具集合,通过将微服务架构抽象成一组工具,隐藏了分布式系统的复杂性,为开发人员提供了更简洁的概念。
Micro解决了构建云本地系统的关键需求,它采用了微服务体系结构模式,并将其转换为一组工具,作为可伸缩平台的构建块。Micro隐藏了分布式系统的复杂性,并为开发人员提供了很好的理解概念
Micro组成
打开Micro的托管项目 https://github.com/micro ,可以看到Micro下共有11个托管仓库。
其中:
go-micro是具体的微服务的开发框架,对于我们开发者来说,通过此框架来自定义我们的微服务。
micro是一套分布式运行时工具集,通过工具集来对我们自定义的微服务进行管理,包括设置api网关、设置代理、新增服务模板等。
go-plugins是Micro社区维护的开发微服务时所需要用到的插件库,当然你也可以使用自定义的插件来对其进行替代,甚至将自己开发的插件推送给社区,上传到社区的仓库中。
clients是调用微服务的多语言客户端代码实现示范。
development是Micro开发路线图,团队和贡献指南。
example提供了许多示例来帮助我们学习Micro,了解其特性。
micro运行时特性
api:一个api网关。使用服务发现进行动态请求路由的单个入口点。API网关使我们可以在后端构建可扩展的微服务架构,并在前端整合服务公共api。Micro api通过发现和可插拔程序提供强大的路由,以服务http、grpc、websocket,发布事件等。
broker:允许异步消息传递的消息代理。微服务是事件驱动的体系结构,应以一流的公民身份提供消息传递。通知其他服务事件,而且不必担心响应。
network:使用微网络服务构建多云网络。只需插入并连接任何环境中的网络服务,并创建一个单一的扁平网络即可进行全球路由。微型网络会根据您在每个数据中心中的本地注册表动态地构建路由,以确保查询是根据位置进行路由的。
new: 服务模板生成器。创建新的服务模板以快速入门。Micro提供了用于编写微服务的预定义模板。始终以相同的方式开始,构建相同的服务以提高生产力。
proxy:基于Go Micro构建的透明服务代理。将服务发现,负载平衡,容错,消息编码,中间件,监视等卸载到一个位置。独立运行它或与您的服务一起运行。
registry:注册器供服务发现以定位其他服务,存储功能丰富的元数据和端点信息。它是一个服务探测器,可让您在运行时集中并动态地存储此类信息。
store:状态存储是任何系统的基本要求。我们提供了一个键值存储,以提供状态的简单存储,可以在服务之间共享状态或长期卸载,以保持微服务无状态和水平可伸缩性。
web: Web界面使您可以浏览服务,描述其端点,请求和响应格式,甚至直接查询它们。界面还包括内置的CLI(类似CLI),适用于希望即时进入终端的开发人员。
安装
从来源:
1 | go get github.com/micro/micro/v2 |
从Docker镜像:
1 | docker pull micro/micro |
最新版本的二进制文件:
1 | # MacOS |
入门
在本地引导整个运行时环境
1 | micro server |
创建服务
1 | # generate a service (follow instructions in output) |
用法
1 | micro --help |
有关平台的体系结构,安装和使用的详细信息,请参阅文档。