使用micro创建微服务

本文介绍了如何使用go-micro框架创建和管理微服务,详细讲解了从安装micro,创建项目,理解项目结构,安装依赖,到执行、启动服务,以及如何访问和监控服务的整个流程。go-micro提供了一套工具集,简化了微服务的开发,并通过插件支持了服务发现、异步消息和传输协议的多样化选择。
摘要由CSDN通过智能技术生成

概述

micro是一个工具集,用来帮助开发者创建和管理微服务。它包括两部分:

  • go-micro:它是一个go语言的微服务开发框架。
  • micro:它是一个命令行工具,这个工具是基于go-micro开发的。

另外go-plugins作为一组插件,在开发过程中也是必要的。通过插件,我们在服务发现、异步消息和传输协议等方面有了更多的选择。

go-micro的体系架构

go-micro的设计目标是简化微服务的开发和分布式系统的创建。
micro体系架构

安装micro

在golang 1.14以后需要使用如下命令进行micro的安装:

export GO111MODULE=on
go get github.com/micro/micro/v2

在安装结束后,如下命令可以确认安装是否正确完成:

micro --version

如果显示如下信息,则可确认micro已经正确安装:
成功
在成功安装了micro后,我们就可以进行微服务的开发了。

开发

创建项目

作为开发的第一步,我们可以使用如下命令创建一个项目:

micro new helloworld --namespace=com.pera --gopath=false

参数说明

  • micro new:创建一个gRPC服务;
  • helloworld:指定服务的名称;
  • –namespace=com.pera:为服务提供一个命名空间;
  • –gopath=false:在当前目录中生成代码,而不是在$GOPATH中生成代码;

项目结构

在我们执行完项目创建命令后,micro会给我们生成如下结构的项目文件:
项目结构

项目文件说明

  • main.go:项目主文件;
  • generate.go:用于整合go generate。确保在go generate执行过程中可以自动调用make proto;
  • plugin.go:初始情况下是一个空文件,主要用于管理所有需要使用的插件;
  • proto/helloworld/helloworld.proto:gRPC的服务定义文件,定义了一个名为Helloworld的服务。在这个服务里定义了三种典型的RPC方法:unary RPC,server streaming RPC和bidirectional streaming RPC;
  • proto/helloworld/helloworld.pb.go:是protoc编译proto文件生成的go语言的源代码文件;
  • proto/helloworld/helloworld.pb.micro.go:通过protoc-gen-micro生成的go语言的源代码文件,用于进一步简化开发者工作。它定义了HelloworldService接口和HelloworldHandler接口;
  • handler/helloworld.go:用于实现具体的业务逻辑。它定义了一个实现了HelloworldHandler接口的名为Helloworld的结构体;
  • subscriber/helloworld.go:实现了消息的异步处理。在这个文件中它提供了两种处理异步消息的方法:一个是通过结构体的方法,另一个是通过函数;
  • Dockerfile:定义如何基于项目文件创建一个docker的镜像;
  • Makefile:定义了一些常用的任务,如:编译、测试、创建docker镜像等;
  • README.md:包含项目的基础信息;
  • .gitignore:
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Node.js可以使用多种方式创建微服务,以下是其中的几种常用方式: 1. 使用Express框架创建微服务 Express是Node.js中最流行的Web框架之一,它提供了许多有用的功能和中间件,可以用来快速创建微服务。以下是使用Express创建微服务的基本步骤: - 安装Express和其他必要的依赖项(如body-parser和cors): ``` npm install express body-parser cors ``` - 创建一个Express应用程序并添加路由: ``` const express = require('express'); const bodyParser = require('body-parser'); const cors = require('cors'); const app = express(); app.use(bodyParser.json()); app.use(cors()); app.get('/hello', (req, res) => { res.send('Hello World!'); }); app.listen(3000, () => { console.log('Server started on port 3000.'); }); ``` 上述代码创建了一个简单的Express应用程序,它监听3000端口并提供一个“/hello”路由,当请求该路由时,它会返回“Hello World!”。 2. 使用Seneca框架创建微服务 Seneca是一个专门用于创建微服务的框架,它提供了许多有用的功能和插件,可以用来构建复杂的微服务体系。以下是使用Seneca创建微服务的基本步骤: - 安装Seneca和其他必要的依赖项: ``` npm install seneca ``` - 创建一个Seneca应用程序并添加插件: ``` const seneca = require('seneca')(); seneca.use('math'); seneca.add({role: 'math', cmd: 'sum'}, (msg, respond) => { const sum = msg.left + msg.right; respond(null, {answer: sum}); }); seneca.listen(3000); ``` 上述代码创建了一个简单的Seneca应用程序,它监听3000端口并提供一个“role: math, cmd: sum”插件,当调用该插件时,它会对两个数求和并返回结果。 3. 使用Micro框架创建微服务 Micro是一个轻量级的微服务框架,它提供了一些简单的工具和插件,可以用来快速创建微服务。以下是使用Micro创建微服务的基本步骤: - 安装Micro和其他必要的依赖项: ``` npm install micro ``` - 创建一个Micro服务并添加路由: ``` const {send} = require('micro'); const hello = (req, res) => { send(res, 200, 'Hello World!'); }; module.exports = hello; ``` 上述代码创建了一个简单的Micro服务,它提供一个“/”路由,当请求该路由时,它会返回“Hello World!”。 总结: 以上是使用Node.js创建微服务的几种常用方式,每种方式都有其优点和适用场景,可以根据具体需求选择合适的方式进行开发。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值