Ядро обчислень
Ядро обчислень - це фреймворк для побудови веб-серверів, яке обробляє запити та події, включаючи ті, що надходять від брокерів повідомлень. Воно завантажує бізнес-схему, яка може бути як одним сервісом, так і групою сервісів. Кожен сервіс представляє собою прикладну область і може включати в себе перелік докумен тів, які описують його функціональність. Ядро обчислень використовує цю схему для ефективної обробки запитів та подій у межах кожного сервісу або групи сервісів.
Опис бізнес-схеми дивись Бізнес-схема
Для створення веб-сервера необхідно створити новий проект, встановити ядро обчислень як залежність NPM та зареєструвати перший сервіс:
- Встановлення пакету ядра через NPM:
npm i @x-fiber/calculator
- Створити файлову структуру:
├── src
│ ├── server
│ │ ├── services
│ │ │ ├── {service-name-1}
│ │ │ ├── {service-name-2}
│ │ │ ├── {...}
│ ├── server.ts
де:
src
- вміст кодової бази.server
- реалізація веб-сервера.services
- сервіси опису бізнес-логіки.server.ts
- точка запуску веб-сервера.
- Створити опис точки запуску веб-сервера
server.ts
:
import {initiator, setServices} from "@x-fiber/calculator";
import {ExampleService} from "./server";
const start = async () => {
setServices([ExampleService]);
await initiator.start();
};
const stop = async () => {
await initiator.stop();
process.removeAllListeners();
process.exit(0);
};
process.on("SIGTERM", stop);
process.on("uncaughtException", (e) => {
console.error(e);
initiator.stop().then(() => {
process.exit(1);
});
});
// .. other process signal handlers
start().catch((e) => {
console.log("Server end with error: ", e);
});
де:
initiator
- керує процесами запуску та зупинки ядра обчислень.setServices
- записує сервіси в бізнес-схему перед запуском ядра обчислень.start()
- запускає ядро обчислень та відкриває зʼєднанняhttp
таws
.stop()
- зупиняє ядро обчислень та закриває зʼєднанняhttp
таws
.process.on("SIGTERM", stop)
- слухає події, що вказують на потребу зупинки сервера.
- Описати бізнес-схему
Почніть створювати та реєструвати сервіси, описувати прикладні області, реалізовувати кінцеву бізнес-логіку конкретної доменої області. Деталі реалізації бізнес-логіки дивіться в розділі Бізнес-схема