创建服务
创建服务
M3O 是 Micro 即服务(Micro as a Service). 使用开源工具构建你的服务并部署到平台.
依赖
你可能需要
- Go => https://golang.org/dl/
- Git => https://git-scm.com/downloads
- Micro => https://github.com/micro/micro
- Protobuf => https://github.com/protocolbuffers/protobuf/releases/tag/v3.13.0
新的服务
要创建一个新的服务只需要执行以下命令
micro new helloworld
这很像用 Rails 生成一个简单的 helloworld 微服务的脚手架. 然后跟着输出的说明走来制原型.
要在本地运行你的服务并确保其正常工作, 只需要启动服务器并运行该服务.
# 启动服务器
micro server
# 设置为本地环境
micro env set local
# 启动你的服务
micro run helloworld
要检查服务的实际运行情况, 可以这样做
# 检查状态
micro status
# 检查是否已注册
micro services
# 检查日志
micro logs helloworld
接着我们干掉这个服务
# 干掉服务
micro kill helloworld
部署服务
要部署服务的话, 首先你需要将其代码上传到 Github. 我们暂不支持本地源上传.
# 初始化 git
cd helloworld && git init && git add . && git commit -m "My helloworld service"
# 在 github 创建一个新的仓库并推送上去
# assuming you created it, add the remote origin
git remote add origin https://github.com/$user/helloworld.git
# 推送
git push origin master
# 设置环境为平台模式
micro env set platform
# 确保已经登陆到平台
micro login
# 现在可以运行了
micro run github.com/$user/helloworld
很简单的说
调用服务
检查服务在运行并调用该服务. 另外因为是从源码构建的, 可能需要几分钟才能启动 (后续我们会优化这个情况)
# 检查服务状态
micro status
# 检查服务注册情况
micro services
# 调用指定的服务
micro helloworld --name=Alice
注意调用服务的符号. Micro 支持动态的 CLI 命令, 这意味着你的命名空间下的任何东西都将成为一个子命令.
micro [service] [endpoint] [args]
在终结点被提交的地方, 我们假设它是服务名称 + “呼叫” 方法, 例如 helloworld 成为 Helloworld. call 。如果这是一个问候方法,我们将假设Helloworld. 问候与c在c.micro helloworld greet
我们假设有一个服务名称 + “Call” 的方法是一个终结点. 例如 helloworld 会是 Helloworld.Call. 如果是 Greet 方法我们会假设 Helloworld.Greet 对应的命令为 micro helloworld greet
.
参数可以作为标志传递 --name
表示的就是 Name
字段参数.
如果你想要一个使用纯 json 和原始方法的更简单方式
micro call helloworld Helloworld.Call '{"name": "Alice"}'
这样也是可以的
外部访问
如果你想通过 API 查询, 请查看 “入门” 章节下的 “公共接口” 部分内容.
得得你个得得
curl -H "Micro-Namespace: $(micro user namespace)" https://api.m3o.com/helloworld