Moleculer开荒布道者 - moleculer-cli工具
这个命令行工具是用来帮助开发者使用
moleculer
框架开发微服务系统和测试代码的。可以使用npm i -g moleculer-cli
全局安装,然后你就可以使用moleculer
命令了。
如果你直接在命令行中输入
moleculer(=== moleculer start)
并敲击回车,系统就会启动Moleculer
并进入到mol
这种类shell
的交互环境中,这种情况是不分配命名空间的,并且默认只启动$node
这个服务,服务中共有5个Action方法
。下面是这个交互环境提供的命令:
Commands:
help [command...] Provides help for a given command.
q Exit application
actions [options] List of actions
bench [options] <action> [jsonParams] Benchmark a service
broadcast <eventName> Broadcast an event
broadcastLocal <eventName> Broadcast an event locally
call [options] <actionName> [jsonParams] Call an action
dcall [options] <nodeID> <actionName> [jsonParams] Direct call an action
clear [pattern] Clear cache entries
emit <eventName> Emit an event
env List of environment variables
events [options] List of event listeners
info Information about broker
load <servicePath> Load a service from file
loadFolder <serviceFolder> [fileMask] Load all services from folder
nodes [options] List of nodes
services [options] List of services
-
查看系统所有服务:下图是使用脚手架创建的项目,自己写了个
image.pngusers
服务。
-
查看所有
image.pngactions
,你可以理解为action
就是后端开发中常说的增删改查API(除$node这个根服务):
image.png
后面这个是我使用cli脚手架生成目录后自己写了个
users
服务,加上脚手架自动生成的api.rest
,greeter.hello
,greeter.welcome
一共有13个actions
,4个services
。
- 使用脚手架创建项目:
moleculer init project my-first-microservice-project
,脚手架会像cue-cli
那样询问你各种组件是否需要,刚开始学习建议全选不需要。以后项目的开发基本会用到脚手架推荐的官方网关,代码检测,单元测试等等组件。需要注意的是moleculer
生成模板时候, 其中project
是moleculerjs/moleculer-template-project
的缩写,官方目前提供了五种模板:project
,project-simple
,nano
,module
,addon
,五种模板都提供了一个样品服务greeter
。模板地址如下:https://github.com/moleculerjs
project
和project-simple
的区别和名字意思一样,就是简化版。比如.gitignore
文件更简洁,dockerfile
部署的代码也更为简洁。目前project-simple
使用的依赖是moleculer*0.11
而不是最新的*0.12
,其repl
依赖也使用的老版本(也就是说这个项目模板很久没更新了),所以推荐还是使用project
模板。有能力有时间的话我倒是希望将公司最终中间层项目整理一下打包一份开源到自己的github,以后类似项目可以使用这样的命令创建基础目录结构和可复用代码:moleculer init username/repo my-project
- 以下是
project
模板提问:官方推荐的网关服务,服务间通讯的桥接器,选择缓存方案(Memory/Redis),使用构建部署工具(Docker),代码检测工具(ESLint),单元测试工具(Jest)等等。
image.png
参考资料
- moleculer 官方文档:http://moleculer.services/0.12/docs
- moleculer-cli 工具:http://moleculer.services/0.12/docs/moleculer-cli.html
- 相关开源项目列表:https://github.com/moleculerjs