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 | # 默认的端口是8080, 如果不指定注册中心,默认 MICRO_REGISTRY 为 mdns |
使用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 | MICRO_ENABLE_ACME=true \ |
设置 TLS
证书
API服务支持TLS证书
1 | MICRO_ENABLE_TLS=true \ |
设置命名空间
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=' ' |