Microservices voor het bouwen van webservers

8C/16T Begin met 1 Microservicesom door de Routekaart capaciteit-structuur(Veronderstellingen: Go/Rust-centrisch, Elixir real-time, Laravel=Alleen beheer, Nginx/Envoy, Redis, Postgres, MeiliSearch, S3/R2, Cloudflare-cache intensief gebruikt)

Premisse (realistische aannames)

  • Verkeersmix: Lezen 80% / Schrijven 20%API gemiddelde respons 2-8KB
  • Cloudflare Cache Treffers: statisch 85%+, API GET 20-40%
  • Doel vertraging: p95 < 80ms (API), < 150ms (Zoeken)
  • Cijfers zijn **voorzichtige schattingen (±30%)** en zijn de stabiele werkingslimieten gebaseerd op p95.

Gelaagde microservice-structuur/capaciteitstabel (8 cores 16 threads)

StappenAantal fysieke serversBatch (aanbevolen service)Geschatte aanhoudende banden (gebaseerd op aanmelding)Stabiele RPS (totaalbedrag)Belangrijkste knelpunten en triggers
A. Alles-in-één1Nginx/Envoy, Ga naar APILaravel(Admin), Redis, Postgres, Meili, Elixir (WS), Beeldwerker20.000 tot 40.0006k tot 12kDB/Schijf, Geheugendruk. p95↑Als , CPU>70%, DB TPS>2k, dan volgende stap
B. De twee scheiden2 eenhedenS1: Nginx + Go API + Elixir + Redis / S2: Postgres + Meili + Media60.000 tot 100.00012k tot 20kDB IOPS-gesloten, zoek QPS. 3 eenheden als DB CPU>60%, QPS>1,5k
C. De drie scheidenDrieS1: Nginx+Go API / S2: Postgres (alleen) / S3: Elixir(WS)+Meili+Media120.000 tot 180.00020k tot 35kWS-sessies↑, zoekpieken. Meili p95>150ms, WS>8 alleen voor 4-5 eenheden.
D. Optimaal voor 4-54-5 eenheden+S4: Alleen zoeken (Meili), +S5: Media/Kue/Cron (Optioneel)200,000 - 300,00035k tot 55kAPI CPU, cache misses, DB leesbelasting. Leespiek↑ als redupliceren
E. 7-9 eenheden verlengen7-9 eenheden2-3 API's horizontaal, DB: primair1 + redundantie1-2, Zoeken 1-2, WS 1-2, Media/Batch 1350.000 tot 550.00060k tot 90kNetwerk/LB, cachestrategie. DB-replicatievertraging, wanneer search sharding nodig is
Microservices ⓒ wi-th.com

Referentiedrempels (1 x 8-core 16-thread, aannames voor optimalisatie/cache):
-. Ga naar API: 6k-12k RPS Stabiel / 20.000+ aanhoudende banden (alleen-lezen)
-. Elixir WS: 60.000-100.000 sessies
-. PostgresStabiel binnen 2-4k QPS voor eenvoudige query's, 1-2k TPS voor schrijfopdrachten
-. Redis50.000+ OPS/S (netwerk/hotkey-aandacht)
-. MeiliSearch600-1.500 QPS (varieert afhankelijk van complexiteit query/filters)

Checklist voor faseovergang (operationele triggers)

  • API p95 > 80 ms 15 minuten of meer of CPU > 65% ondersteund
  • DBGemiddelde latentie > 20 ms, actieve verbindingspool 80%↑, checkpointvertraging
  • Cache: Sneltoets bias, cache miss rate > 30%
  • WSSessies op één knooppunt > 80k of zendvertraging ↑.
  • Zoek op: p95 > 150 ms, geaccumuleerde indexeringsvertraging

Aanbevelingen voor het inzetten van microservices (samenvatting)

  • Kern-APIGo (eerste prioriteit), met hotpaths met ultrahoge prestaties, gescheiden in Rust
  • Live/ChatStandalone knooppunt van Elixir (Phoenix)
  • Admin/ContentLaravel (+Octane) afzonderlijke container, wachtrij/cache vereist
  • gegevensPostgres (main) → In stap D/E wordt de Een leadreplica toevoegen
  • Zoek opSpecifiek knooppunt voor Meili (stap C~), sharding/replica bij QPS↑.
  • Wachtrij/Batch/MediaKnooppunt met alleen werknemers (stap D naar)
  • RandCloudflare Cache Regels - SWR - API Cache (glijdende TTL)

Snelle beslissingsgids

  • Eerste lancering/POCA (1 eenheid)
  • MAU↑ - officieel geopendB (2 eenheden)(DB-ontkoppeling alleen al verhoogt de stabiliteit enorm)
  • Real-time/zoeken in actieC (3)
  • Nationale campagne/piekvoorbereidingD (4-5 eenheden)
  • Altijd massale co-occurrence - meerdere pieken tegelijkertijdE (7-9 eenheden)

✅ 1. Inschatten van de behoeften aan middelen/prestaties voor elke dienst

wwwFrontend SSR, Nuxt, enz.Gemiddeld tot hoog (CPU/RAM/SSD)SEO antwoord
apiGemiddeld tot hoog (CPU/IO/RAM)REST of GraphQL
winkelenWinkeleigenschappenGemiddeld tot hoog (RAM/DB IO)Producten, winkelwagen en afrekenen
dbMariaDB / MySQLFase (RAM/SSD)SSD's zijn belangrijk
redisCache / sessie / wachtrij stuurprogramma'sGemiddeld tot hoog (RAM)Snelle geheugenreactie vereist
cdnStatische bron-serversFase (DiskIO/Netwerk)Beschikbare mitigaties wanneer Cloudflare CDN wordt gebruikt
gemeenschapGemeenschappen, prikbordenMedium (DB/Zoeken)Commentaar, empathie en meldingen
chatLive chat (Socket.io, enz.)Fase (CPU/Memory/Netwerk)Websockets vereist
raad aanAanbevelingsalgoritmenGemiddeld tot hoog (RAM/CPU)Meilisearch of ML
bladwijzerFavorietenha (DB)Eenvoudige staten
zoekOp MeiliSearch gebaseerde zoekserviceFase (RAM/SSD)Volledige tekst index
externExterne API-integraties (adressen, eigenschappen, enz.)Laag tot medium (netwerk)Aanbevolen scheiding van asynchrone wachtrijen
authOAuth2/JWT/SSO-authenticatieMedium (CPU/RAM)Hoog aantal verzoeken
adminFilament etc. beheerderspaneelMedium (CPU/DB)Voor intern gebruik
admin-apiAPI's alleen voor beheerdersMedium (RAM/CPU)Interne API's
gebruikerLedenbeheer, Mijn paginaMedium (DB/CPU)Profiel/Instellingen
betalingIntegratie van betalingen (KG Inesis, enz.)Medium (Netwerk/Veiligheid)Denk aan veiligheid
wachtrijAsynchrone wachtrijen voor taken (Laravel Queue, Horizon, enz.)Fase (CPU/IO)Beeldverwerking, e-mail en meer
meldingMeldingen verzenden (push/e-mail/SMS, enz.)Fase (Netwerk/CPU)Integreren met externe API's
verslagRapportage/statistieken verzamelenha (DB)Ondersteunende functies
statsStatistieken over gebruikersgedrag verzamelen en analyserenGemiddeld tot hoog (RAM/opslag)Langdurige opslag vereist
dbMariaDB / MySQLZeer hoog (IO/RAM)Moet een aparte server zijn
gatewayAPI Gateway (bijv. Kong, Traefik, Nginx)Routing, verificatie en logboekregistratie samenvoegen
bestandBestandsservers (bijv. MinIO/R2 Proxy)Afbeeldingsuploads beheren
Microservices ⓒ wi-th.com

✅ 2. Als een microservice Extra aanbevolen diensten

Aanvullende dienstenRol/OmschrijvingReden
back-upPeriodieke back-upservice DB/BestandReactie op storing
loggerCentraal loggen (bijv. Loki, FluentBit, Logstash)Logboekverzameling per service
monitorSysteemmonitoring (bijv. Prometheus, Grafana)Gezondheidscontroles, meldingen
mailerMailing-only service (met SMTP-integratie)Bulkmail
cronServices met alleen een planner (zoals Laravel Schedule)Op tijd gebaseerde gebeurtenisisolatie
ssoOAuth-integratie of SSO-serviceUnified login-ondersteuning
Microservices ⓒ wi-th.com

✅ 3. Hulpbronverdeling / inzet van 2 server microservices voorstellen

🖥️ Server1 (8 cores 16 threads, hoge klok)

Front-end verwerking / API / realtime service gericht (snelle respons cruciaal)

  • www (Nuxt SSR)
  • api (Laravel API)
  • winkelen
  • veiling
  • wedstrijd
  • auth
  • admin-api
  • chat (Socket.io)
  • wachtrij
  • melding
  • raad aan
  • gateway (Nginx of Traefik)
  • cron / mailer
  • extern (API-integratie)

karakteristiekFocus op reactiesnelheid en real-time verwerking van kritieke services, gebruikmakend van de voordelen van snelle NVMe SSD's en DDR5

🖥️ Server2 (8 cores 16 threads, hoge klok)

Opslag/analyse centraal, IO/bulkverwerking geoptimaliseerd

  • db (MariaDB/MySQL)
  • redis
  • meilisearch
  • cdn (voor het cachen van statische bronnen)
  • stats
  • verslag
  • gebruiker
  • admin (Draad)
  • gemeenschap
  • bladwijzer
  • zoek
  • bestand (Uploaden, CDN-opslag)
  • logger, monitor, back-up

karakteristiek: Veel kernen, goed voor het afhandelen van veel verzoeken tegelijkertijd, gericht op analyse/opslag/cache

✅ 4. Batchoverzicht (tabel)

Type serviceInstallatieserver
Real-time/responsgeoriënteerde dienstenServer1
Opslag/analyse/zoekgerichte dienstenServer2
Microservices ⓒ wi-th.com
Alles over interieur Achteruit.nl
ⓒ dknock.in-te-ri-or.com
Binnenhuisarchitect ⓒ dknock

Inhoudsopgave