瘋狂的技術宅 前端先鋒 前端
翻譯:瘋狂的技術宅
做者:Sergey Kravchenko
來源:medium
正文共:1099 字
預計閱讀時間:5 分鐘node
微服務已成爲在 Node.js 中構建可擴展且強大的雲應用的主流方法。同時也存在一些門檻,其中一些難點須要你在如下方面作出決策:git
https://github.com/krawa76/smfgithub
讓咱們看看它如何幫你建立和部署微服務原型而無需編寫任何代碼。docker
安裝框架,建立一個新項目並 cd 到項目目錄:數據庫
1$ npm install -g sokyra-microservice-factory 2$ smf new test-stack 3$ cd test-stack
帶有演示服務的樣板代碼已生成,咱們能夠輕鬆地運行該項目:npm
1$ smf up
這將生成 Docker工件(docker-compose 和環境變量文件),構建映像並在本地運行容器:
json
docker-compose 日誌
若是在編輯器中打開項目,則會看到帶有 main.ts 模塊的自動生成的 demo 服務,該服務在上面的日誌中生成了記錄。其餘的重要文件是 smf-stack.json(項目配置),smf-env.json(容器 env 變量),通用的 Dockerfile 和 smf-docker.yml(docker-compose):
bootstrap
演示服務,main 模塊
要中止項目,請運行ubuntu
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 賬戶。若是丟失,你能夠在這裏免費註冊:
在編輯器中打開 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 ...
編碼愉快!
https://medium.com/@krawa76/bootstrap-node-js-microservice-stack-4a348db38e51