【金融特辑】光大银行科技部DBA女神带你从0到1揭秘MGR
微效劳已成为在 Node.js 中构建可扩展且弱小的云运用的主流办法。同时也存在一些门槛,其中一些难点需求你在以下方面做出决策:
组织项目结构。
将自定义效劳衔接到第三方效劳(数据库,音讯代理等)
处置微效劳之间共享的代码。
将项目容器化。
在本地运转和调试,然后将其部署到云中。
SMF 框架是开箱即用的处置方案:
https://github.com/krawa76/smf
让我们看看它如何帮你创立和部署微效劳原型而 无需编写任何代码。
创立项目安装框架,创立一个新项目并 cd 到项目目录:
1$ npm install -g sokyra-microservice-factory
2$ smf new test-stack
3$ cd test-stack
带有演示效劳的样板代码已生成,我们可以轻松地运转该项目:
1$ smf up
这将生成 Docker工件(docker-compose 和环境变量文件),构建映像并在本地运转容器:
docker-compose 日志
假设在编辑器中翻开项目,则会看到带有 main.ts 模块的自动生成的 demo 效劳,该效劳在下面的日志中生成了记载。其他的重要文件是 smf-stack.json (项目配置), smf-env.json (容器 env 变量),通用的 Dockerfile 和 smf-docker.yml (docker-compose):
演示效劳,main 模块
要中止项目,请运转
1$ smf down
添加新效劳让我们添加一项效劳,该效劳可以经过音讯代理发送和接纳音讯,并将某些内容保存到数据库中:
1$ smf add service service1
选择 RabbitMQ 和 MongoDB ,然后输入 “0” 参加菜单:
这将在 main 模块中创立新的带有样板代码的 service 子文件夹:
让我们再次运转该项目查看其运转状况:
1$ smf up
如今我们有 4 个容器在运转:RabbitMQ、MongoDB、demo 和 service1。后者经过 RabbitMQ 发送接纳音讯,并将模拟数据保存到 MongoDB:
docker-compose 日志
可以再次运用 smf down 命令中止该项目。
我们可以相似地添加更多效劳,假设选择相反的音讯代理效劳,它们都会经过音讯中心交流音讯。
部署将我们的项目部署到安装了 Docker 和 Docker-Compose 的远程效劳器上很容易。假设你还没有,请按照以下复杂阐明在 Amazon AWS EC2 中创立它:
https://github.com/krawa76/smf/blob/master/README-provisioner.md
还需求 Docker Hub 帐户。假设丧失,你可以在这里收费注册:
https://hub.docker.com/
在编辑器中翻开 smf-deploy.json 文件,并填写 Docker Hub 登录名及密码、主机地址和远程计算机 SSH 凭据(ssh密钥途径)。
运转以下命令部署项目:
1$ smf deploy
当该进程完毕时,我们可以 ssh 到远程机器,并查看在那里运转的微效劳:
1$ ssh -i "/Users/me/.ssh/aws-key.pem" ubuntu@ec2-x-x-x-x.compute1.amazonaws.com$ docker ps
2(gives the list of services)$ docker logs -f test-stack-service1
3(give the live log)
如今,我们在云中有了容器化微效劳栈的有效原型。
下一步是什么?末尾添加更多逻辑。由于每个效劳都是一个独自的NPM软件包,因此我们可以进入到 service 文件夹,安装其他软件包,在 main.ts 模块中编写形式代码,添加新的 JavaScript 模块,等等:
1$ cd services/service1
2$ npm install ...
编码愉快!
【编辑引荐】
微博、Facebook 均中招!美国 AI 公司伪造 APP 获取用户隐私数据
2020年的13个优秀企业架构工具
2020年十分抢手的 10 个 Java 微效劳框架
Github最新5大开源机器学习项目!数据计算快至80倍!
这里有60款值得引荐的大数据开源工具
(责任编辑:admin)