0%

M3O - 运行时工具 micro api

M3O - 运行时工具 micro api

micro api 就是 api 网关

API 网关模式为服务提供了一个单一的公共入口。通过服务发现,micro api 以http 方式,将请求动态路由到具体的后台服务接口。我们以下简称 API网关

这种服务方式,将简化下游服务调用方式,极大的降低了使用难度。

概览

API网关 基于 go-micro 开发,所以它默认具备服务发现负载均衡编码及RPC通信的能力,故而,API网关 也是 go-micro 体系中的一个微服务,所以它自身也是可插拔的。

安装

1
go get -u github.com/micro/micro

运行

1
2
# 默认的端口是8080, 如果不指定注册中心,默认 MICRO_REGISTRY 为 mdns
micro api

使用ACME协议

ACME( Automatic Certificate Management Environment)是由 Let’s Encrypt制定的安全协议。

ACME 资料

为了在您的网站上启用 HTTPS,您需要从证书颁发机构(CA)获取证书(一种文件)。Let’s Encrypt 是一个证书颁发机构(CA)。要从 Let’s Encrypt 获取您网站域名的证书,您必须证明您对域名的实际控制权。您可以在您的 Web 主机上运行使用 ACME 协议的软件来获取 Let’s Encrypt 证书。

API网关启用 ACME

1
MICRO_ENABLE_ACME=true micro api

配置白名单

1
2
3
MICRO_ENABLE_ACME=true \
MICRO_ACME_HOSTS=example.com,api.example.com \
micro api

设置 TLS 证书

API服务支持TLS证书

1
2
3
4
MICRO_ENABLE_TLS=true \
MICRO_TLS_CERT_FILE=/path/to/cert \
MICRO_TLS_KEY_FILE=/path/to/key \
micro api

设置命名空间

API使用带分隔符的命名空间来在逻辑上区分后台服务及公开的服务。命名空间及 http 请求路径会用于解析服务名与方法,比如 GET /foo HTTP/1.1 会被路由到 go.micro.api.foo 服务上。

API默认的命名空间是 go.micro.api,当然,也可以修改:

1
MICRO_NAMESPACE=com.example.api micro api

通过设置命名空间为为空禁用命名空间,不建议禁用命名空间,如果非要禁用,可以通过以下方法设置。

1
MICRO_NAMESPACE=' '