• Час читання ~0 хв
  • 08.10.2022

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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297