/ / Zrozumienie mikroserwisów przy użyciu Express.js i docker - node.js, express, microservices

Zrozumienie mikroserwisów za pomocą Express.js i docker - node.js, express, microservices

Jestem nowy w węźle.js i docker oraz architektura mikroserwisów. Próbuję zrozumieć, czym właściwie jest architektura mikroserwisów i teoretycznie rozumiem, czym jest łuk mikroserwisów. Zobacz następującą implementację To jest index.js plik:

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

Plik usługa1:

    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;

Plik service2:

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. Czy powyższe kwalifikuje się jako „architektura mikrosystemów”? Ponieważ istnieją dwie usługi i można uzyskać do nich dostęp za pośrednictwem „api-gateway” index.js?
  2. Przeczytałem podstawowy samouczek Dockera. Czy możliwe jest posiadanie powyższych trzech „modułów” w oddzielnych kontenerach?
  3. Jeśli powyższe nie kwalifikuje się jako mikroserwis, co należy zrobić, aby przekonwertować powyższą próbkę na mikroserwisy?

Odpowiedzi:

5 dla odpowiedzi № 1

To naprawdę nie kwalifikuje się jako architektura mikroserwisowa.

Cały podany kod jest na tyle mały, że można go uznać za jedną pojedynczą usługę mikro (zawierającą dwie trasy), ale nie jest to przykład architektury mikroserwisów.

Zgodnie z tą definicją;

„Mikrousługi są małe, autonomiczny usługi to pracować razem"
Budowanie mikrousług <- wskazówka: powinieneś przeczytać tę książkę

Zarówno serwis1, jak i serwis2 należy uznać zamikroserwis powinien być autonomiczny, co nie dzieje się, gdy umieszczasz je razem w tej samej ekspresowej aplikacji. Na przykład; nie możesz go zrestartować bez wpływu na drugiego. Nie możesz uaktualnić wersji usługi1 bez konieczności wdrażania usługi2. Nie są rozprowadzane w tym sensie, że mogą odejść w oddzielnych maszynach.


4 dla odpowiedzi nr 2

Właściwie myślę, że brakuje ci koncepcjiarchitektura mikroserwisów. Twoje usługi muszą być niezależne, a jeśli muszą komunikować się ze sobą, muszą użyć mechanizmu wykrywania usług, który zwróci zdrową instancję tej usługi. Innym wzorem architektury mikroserwisów jest to, że każda pojedyncza usługa musi mieć punkt końcowy (/ zdrowie), który zwraca stan kondycji usługi, mając to odkrycie usługi może sprawdzić, czy ta instancja jest zdrowa i zwrócić ją jako zdrową instancję

Microservices nie dotyczy technologii, która dotyczy koncepcji i wdrażania właściwych wzorców. W przeciwnym razie będziesz miał architekturę chaosu: D

Jeśli chcesz zrozumieć pojęcia, naprawdę polecam tę książkę: http://shop.oreilly.com/product/0636920033158.do