• Czas czytania ~2 min
  • 08.10.2022

Laravel Dynamic Servers to pakiet firmy Spatie, który pomaga uruchamiać i zatrzymywać serwery w razie potrzeby. Podstawowym przypadkiem użycia jest tworzenie dodatkowych serwerów, które pomogą Ci w obciążeniu kolejką.

Możesz się zastanawiać: „dlaczego po prostu nie użyć Kubernetesa?”. W poście autora na blogu Pakiet do zarządzania dynamicznymi serwerami, Freek Van der Herten powiedział:

Możesz myśleć o laravel-dynamic-servers jako o opartej na PHP wersji Kubernetesa, która ma 5% swoich funkcji, ale obejmuje 80% przypadków użycia. Dla większości programistów PHP i Laravela ten pakiet będzie również łatwiejszy do nauczenia i używania.

Więc chociaż możesz rozwiązać te problemy na inne sposoby, ten pakiet może być idealny do Twoich potrzeb w zakresie skalowania serwery działają i nie działają.

Oto przykładowe wywołanie zwrotne, które możesz dodać, aby obliczyć, ile serwerów, które mają być uruchomione, w oparciu o dowolną potrzebną logikę:

// 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);
});

Przykład readme pakietu korzysta z funkcji WaitTimeCalculator programu Horizon, aby określić, ile serwerów należy zapewnić . Powyższe wywołanie zwrotne będzie uruchamiane co minutę w celu skalowania w górę i w dół, w zależności od potrzeb.

Niektóre inne zalety tego pakietu:

  • 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

Po wyjęciu z pudełka ten pakiet ma dostawcę serwera dla UpCloud. Możesz jednak utworzyć niestandardowego dostawcę dla swojego ulubionego dostawcy usług w chmurze.

Sprawdź dokumentację, aby rozpocząć korzystanie z tego pakietu. Kod źródłowy jest open-source na GitHub w spatie/laravel-dynamic-servers.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297