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.