/ / Entendiendo los microservicios usando Express.js y docker - node.js, express, microservices

Entender los microservicios utilizando Express.js y docker - node.js, express, microservices

Soy nuevo en el nodo.js y docker, así como la arquitectura de microservicios. Estoy tratando de entender qué es realmente la arquitectura de microservicios y, en teoría, sí entiendo qué es el arco de microservicios. Por favor, vea la siguiente implementación Este es el index.js archivo:

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");
});

El archivo servicio1:

    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;

El archivo servicio2:

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;
  1. ¿Lo anterior califica como "arquitectura de microservicio"? Ya que hay dos servicios y se puede acceder a ellos a través del index.js de "api-gateway"?
  2. He leído el tutorial básico de Docker. ¿Es posible tener los tres "módulos" anteriores en contenedores separados?
  3. Si lo anterior no califica como microservicio, ¿qué se debe hacer para convertir la muestra anterior en microservicios?

Respuestas

5 para la respuesta № 1

Esto realmente no califica como una arquitectura de microservicio.

El código completo que proporcionó es lo suficientemente pequeño como para ser considerado como un único microservicio (que contiene dos rutas), pero este no es un ejemplo de una arquitectura de microservicio.

Según esta definición;

"Los microservicios son pequeños, autónomo servicios que trabajar juntos"
Microservicios de construcción <- consejo: debes leer este libro

Tanto el servicio1 como el servicio2 deben considerarseEl microservicio debe ser autónomo, lo que no está sucediendo cuando los colocas juntos en la misma aplicación Express. Por ejemplo; No puedes reiniciar uno sin afectar al otro. No se puede actualizar la versión de service1 sin tener que implementar service2. No se distribuyen en el sentido de que se pueden dejar en máquinas separadas.


4 para la respuesta № 2

En realidad creo que te estás perdiendo el concepto deArquitectura de microservicio. Sus servicios deben ser independientes y, si necesitan comunicarse entre ellos, deben usar un mecanismo de descubrimiento de servicios que devolverá una instancia saludable de ese servicio. Otro patrón de la arquitectura de microservicios es que cada servicio único debe tener un punto final (/ salud) que devuelva el estado de salud del servicio, haciendo que su descubrimiento del servicio pueda verificar si esa instancia está en buen estado y devolverla como una instancia en buen estado.

Microservices no se trata de tecnología, se trata de un concepto y de implementar los patrones correctos. De lo contrario, tendrá una arquitectura de caos: D

Si quieres entender los conceptos, realmente recomiendo este libro: http://shop.oreilly.com/product/0636920033158.do