Итак, скажем, у меня есть 2 микро-службы, которые взаимодействуют друг с другом - MS1 и MS2.
Так что для этого примера у MS1 есть 150 запросов на получение от MS2, я использую Promise.all для их отправки .
Для каждого запроса от MS1, MS2 делает вызов ios .get на другой сервер вне моего контроля. Время реакции этого сервера невероятно медленное - примерно до 10 минут на вызов.
Так что в ожидании этого другого сервера MS2 принимает следующий запрос.
Итак, у меня 150 запросов, и каждый раз, когда мы достигаем точки ожидания медленного сервера, я предполагаю, что API начинает обрабатывать следующий запрос.
Мой сервер также имеет конечную точку / health для kubernetes, которая при получении всех этих запросов , MS2 перестает отвечать или очень медленно отвечает на / health, что заставляет kubernetes завершать и перезапускать мой модуль.
Это потому, что чрезмерное количество запросов к MS2 блокирует событие l oop? или я что-то здесь упускаю?
Добавление кода: MS1: API
const express = require('express');
const router = express.Router();
var axios = require('axios')
var test = require('./test')
module.exports = router.get('/placeHolder', async (req, res, next) => {
console.log("im working");
// test();
// console.log("test done");
try {
var x = await test();
res.status(200);
res.json({
test: x
});
}
catch (err) {
res.status(500)
res.json(err)
}
});
MS test. js:
var axios = require('axios')
module.exports = async () => {
try {
var x = await axios.get("http://localhost:8096/placeholder_services/placeholder2")
return x
}
catch (err) {
console.log(err.message);
return err
}
}
MS2 API:
const express = require('express');
const router = express.Router();
module.exports = router.get('/placeHolder2', async (req, res, next) => {
console.log("im working");
setTimeout(() => {
console.log("im done");
res.status(200);
res.json({
test: "ok"
});
}, "60000");
});
А скажем, я посылаю 150 запросов через почтальона одновременно
Спасибо :)) 1026 *