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=' ' |