您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    5 分钟搭建 Node.js 微效劳原型
    时间:2020-03-17 21:09 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    【金融特辑】光大银行科技部DBA女神带你从0到1揭秘MGR

    5 分钟搭建 Node.js 微效劳原型

    微效劳已成为在 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)