使用Express.js和docker了解微服务

use*_*913 5 node.js express microservices

我是node.js和docker以及微服务架构的新手.我试图了解微服务架构实际上是什么,理论上我理解微服务架是什么.请看下面的实现这是index.js文件:

var express = require("express"); 
var app = express();
var service1 = require("./service1");
var service2 = require("./service2");
app.use("/serviceonerequest",service1);
app.use("/servicetwo",service2);
app.listen(3000,function(){
    console.log("listening on port 3000");
});
Run Code Online (Sandbox Code Playgroud)

文件service1:

var express = require("express");
var router = express.Router();
router.use(express.json());
router.get("/",(req,res)=>{
    //perform some service here
    res.send("in the get method of service 1");
    res.end();
});        
router.post("/letsPost",(req,res)=>{
    res.send(req.body);
    res.end("in post method here");
})
module.exports = router;
Run Code Online (Sandbox Code Playgroud)

文件服务2:

var express = require("express");
var router = express.Router();       
router.use(express.json());
router.get("/",(req,res)=>{
    //perform some service here
    res.end("in the GET method for service 2");
});    
router.post("/postservice2",(req,res)=>{
    res.send(req.body);
});    
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
  1. 以上是否有资格作为"微服务架构"?由于有两种服务,可以通过'api-gateway'index.js访问它们?
  2. 我已经阅读了Docker的基本教程.是否有可能将上述三个"模块"放在不同的容器中?
  3. 如果以上不符合微服务要求将上述样本转换为微服务应该怎么做?

Ren*_*ama 8

这并不符合微服务架构的要求.

您提供的整个代码足够小,可以被视为一个单独的微服务(包含两个路由),但这不是微服务架构的示例.

根据这个定义;

"微服务是一种小型自主服务,可以协同工作 "
构建微服务< - 提示:您应该阅读本书

service1和service2都被认为是微服务应该是自治的,当你将它们放在同一个快速应用程序中时不会发生什么.例如; 你不能重新启动一个而不影响另一个.您无法升级service1的版本而无需部署service2.它们不是分布在他们可以留在不同机器中的意义上.