Micro API使用

本文介绍了Micro API在微服务架构中的作用,包括安装、使用方法和内部工作原理。Micro API作为API网关,提供了单一入口统一服务API,并具备服务发现、负载均衡等功能。通过命令行安装和启动,使用命名空间区分服务。文章还展示了三层服务架构示例,并解释了不同类型的接口以及其内部注册和路由机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微服务架构是把应用解耦成逻辑上的相对隔离的服务,API网关则是提供单一的入口把服务的API统一起来。通过服务发现,Micro APIhttp方式,将请求动态路由到具体的后台服务接口。
在这里插入图片描述
Micro API是基于go-micro开发,所以它天然具备服务发现、负载均衡、编码及RPC通信的能力。因此,Micro API也是go-micro体系中的一个微服务,它自身也是可插拔的。

安装

通过命令go get -u github/micro/micro进行安装,如果安装成功,那么在命令行输入micro --version就可以看到它的版本信息。

使用

Micro API使用带分隔符的命名空间来在逻辑上区分后台服务及公开的服务,命名空间及HTTP请求路径会用于解析服务名与方法,比如GET /foo HTTP/1.1会被路由到go.micro.api.foo服务上。
Micro API默认的命名空间是go.micro.api,这个可以修改。例如:MICRO_NAMESPACE=com.example.api。micro api命令用法:micro [global options] command [command options] [arguments...]

示例

下面是一个三层服务架构:

  • micro api:(localhost:8080)-http访问入口
  • api service:(go.micro.api.book)-对外暴露的API服务
  • backend service:(go.micro.srv.book)-内网的后台服务

代码附在文后,分别启动这三层服务。

  • 启动micro api,使用命令micro api
  • 运行服务,go run srv/main.go
  • 运行api,go run api/api.go

micro api会运行api网关,用法:micro api [command options] [arguments...]
OPTIONS允许的选项有:

  • --address,用来设置api地址,例如:0.0.0.0:8080
  • --handler,用来指定用于将HTTP请求映射到服务的请求处理程序,值有四个:api,event,http,rpc。
  • --namespace,设置api的命名空间,例如:com.example.api
  • --resolver,设置api使用的主机名解析程序,micro使用命名空间与HTTP请求路径来动态路由到具体的服务。API命名的空间是go.micro.api,可以通过指令--namespace或者环境变量MICRO_NAMESPACE=设置命名空间--resolver的值有三个:host,path,grpc

启动服务后,我们就可以发送请求curl "http://localhost:8080/book/register?name=john"
Http请求的路径/book/register会被路由到服务go.micro.api/book的方法Book.Register上。
注意: 如果通过micro api命令启动api服务时,缺少参数--handler,那么在访问上面的地址时,会出现下面的响应结果。

{
   
   
    "id": "go.micro.api",
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值