[英]Understanding microservices using Express.js and docker
我是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");
});
文件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;
文件服務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;
這並不符合微服務架構的要求。
您提供的整個代碼足夠小,可以被視為一個單獨的微服務(包含兩個路由),但這不是微服務架構的示例。
根據這個定義;
“微服務是一種小型自主服務, 可以協同工作 ”
構建微服務 < - 提示:您應該閱讀本書
service1和service2都被認為是微服務應該是自治的,當你將它們放在同一個快速應用程序中時不會發生什么。 例如; 你不能重新啟動一個而不影響另一個。 您無法升級service1的版本而無需部署service2。 它們不是分布在他們可以留在不同機器中的意義上。
實際上我認為你缺少微服務架構的概念。 您的服務必須是獨立的,如果他們需要相互通信,他們必須使用服務發現機制,該機制將返回該服務的健康實例。 微服務架構的另一種模式是每個服務必須具有返回服務健康狀態的端點(/ health),具有此服務發現可以檢查該實例是否健康並將其作為健康實例返回。
微服務不是關於技術的概念和實現正確的模式。 否則你會有一個混亂的架構:D
如果你想要理解我真正推薦這本書的概念: http : //shop.oreilly.com/product/0636920033158.do
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.