Laravel Dynamic Servers — це пакет від Spatie, який допомагає запускати та зупиняти сервери за потреби. Основним варіантом використання є створення додаткових серверів, які допоможуть вам справлятися з робочим навантаженням у черзі.
Можливо, ви запитуєте: «Чому б просто не використати Kubernetes?» У публікації блогу автора Пакет для керування динамічними серверами Фрік Ван дер Хертен сказав:
Ви можете думати про laravel-dynamic-servers як про версію Kubernetes на основі PHP, яка має 5% функцій, але охоплює ці 80% випадків використання. Для більшості розробників PHP і Laravel цей пакет також буде легшим для вивчення та використання.
Тож, хоча ви можете вирішити ці проблеми іншими способами, цей пакет може ідеально відповідати вашим потребам у масштабуванні. сервери вгору та вниз.
Ось приклад зворотного виклику, який ви можете додати, щоб обчислити, скільки серверів, щоб забезпечити роботу, на основі будь-якої логіки, яка вам потрібна:
// In a service provider
use Spatie\DynamicServers\Facades\DynamicServers;
use Spatie\DynamicServers\Support\DynamicServersManager;
DynamicServers::determineServerCount(function(DynamicServersManager $servers) {
// Custom logic to decide how many servers are needed.
// This callback runs every minute.
$numberOfServersNeeded = 5;
$servers->ensure($numberOfServersNeeded);
});
Приклад readme пакета використовує WaitTimeCalculator
від Horizon, щоб визначити, скільки серверів для забезпечення . Наведений вище зворотній виклик виконуватиметься щохвилини для збільшення та зменшення масштабу, залежно від того, що вам потрібно.
Деякі інші основні можливості цього пакета:
- Ensuring a number of servers are running
- Rebooting servers
- Ability to handle multiple server types
- Manually increasing/decreasing the number of servers
- Custom service provider
- Configurable hard limit on the number of servers
З коробки цей пакет має постачальника серверів для UpCloud. Однак ви можете створити спеціального постачальника для свого улюбленого постачальника хмарних послуг.
Перегляньте документацію, щоб розпочати роботу з цим пакетом. Вихідний код є відкритим на GitHub за адресою spatie/laravel-dynamic-servers.