

5 分钟搭建 Node.js 微服务原型
source link: http://mp.weixin.qq.com/s?__biz=MzI3NzIzMDY0NA%3D%3D&%3Bmid=2247488248&%3Bidx=1&%3Bsn=e820bae0242c0c95db2b904ef62700d7
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

每日前端夜话 第291篇
翻译: 疯狂的技术宅
作者:Sergey Kravchenko
来源:medium
正文共:1099 字
预计阅读时间:5 分钟
微服务已成为在 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 和环境变量文件),构建映像并在本地运行容器:
如果在编辑器中打开项目,则会看到带有 main.ts
模块的自动生成的 demo
服务,该服务在上面的日志中生成了记录。其他的重要文件是 smf-stack.json
(项目配置), smf-env.json
(容器 env 变量),通用的 Dockerfile 和 smf-docker.yml
(docker-compose):
要停止项目,请运行
1$ smf down
添加新服务
让我们添加一项服务,该服务可以通过消息代理发送和接收消息,并将某些内容保存到数据库中:
1$ smf add service service1
选择 RabbitMQ
和 MongoDB
,然后输入 “0” 退出菜单:
这将在 main 模块中创建新的带有样板代码的 service 子文件夹:
让我们再次运行该项目查看其运行情况:
1$ smf up
现在我们有 4 个容器在运行:RabbitMQ、MongoDB、demo 和 service1。后者通过 RabbitMQ 发送接收消息,并将模拟数据保存到 MongoDB:
可以再次使用 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" [email protected]$ 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 ...
编码愉快!
原文链接
https://medium.com/@krawa76/bootstrap-node-js-microservice-stack-4a348db38e51
2020年京程一灯全新课程体系即将推出,请保持关注。
愿你在新的一年里保持技术领先,有个好前程,愿你月薪30K。我们是认真的 !
✎ 往期精彩回顾
从 JavaScript、ES6、ES7 到 ES10,你学到哪儿了?
Recommend
-
186
我曾经在一篇文章中写过,希望大家不要欺骗 App Store Review Team,但是近来的 Uber 审核事件,以及发生在我个人身上的 审核团队不对我的长篇详细辩解作正面回答,且无限期推迟我的 App 审核的事情发生后,我彻底对这个团队没有了尊重,作为能
-
22
code小生 一个专注大前端领域的技术平台 公众号回复 Android 加入安卓技术群 本文出处:码匠笔记公众号 Pandownload 下线大家心里都很苦,不过我...
-
25
前言 npm 作为一种包管理工具,无论你是泛前端还是大前端都已经离不开它。它的出现方便了万千少年。让我们跨过了 Ctrl+C、Ctrl+V ,通过 ``npm install x 的方式将别人的优秀代码模块引入到自己的项目中。这些优秀的模块能被...
-
26
npm 作为一种包管理工具,无论你是泛前端还是大前端都已经离不开它。它的出现方便了万千少年。让我们跨过了 Ctrl+C、Ctrl+V ,通过 ``npm install x的方式将别人的优秀代码模块引入到自己的项目中。这些优秀的模块能被共享的原因,一方面是有 npm 这么一个包管...
-
11
Python + Selenium,分分钟搭建 Web 自动化测试框架!在程序员的世界中,一切重复性的工作,都应该通过程序自动执行。「自动化测试」就是一个最好的例子。随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手...
-
13
10 分钟使用 Spring Boot + Vue + Antd + US3 搭建自己的图床网上已经一些运行不错的图床了,比如那为什么我们还要自己搭建图床呢?一来是因为码农总是喜欢折腾,二来是有了自己的图床数据自己存储更安全。那么接下来我们就搞起来。下面是演示...
-
12
使用node+puppeteer+express搭建截图服务 转载请注明出处 https://www.cnblogs.com/funnyzpc/p/14222807.html 写在之前 一开始我们的...
-
13
统计图形 利用 shiny 包快速搭建可视化原型系统 关键词:s...
-
9
分分钟理解原型模式 原创 掘金安东尼 2022-04-21 15:35:07 ©著作...
-
11
1 分钟快速搭建 Shadowsocks快速搭建 SS 服务你已经根据
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK