NestJS: backend-API:er för företag · Lektion

Skalning av ditt Supabase-projekt

Förstå strategier för att skala din Supabase-backend, inklusive anslutningspoolning, läsrepliker och arkitektoniska överväganden

Lektion 6 av 611 steg

Skalning av ditt Supabase-projekt är en gratis lektion i NestJS: backend-API:er för företag på CoddyKit. Detta är lektion 6 av 6. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för NestJS: backend-API:er för företag, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i NestJS: backend-API:er för företag innehåller totalt 6 lektioner.

Skala ert Supabase-projekt

Välkomna till den sista lektionen om prestanda! I dag utforskar vi hur Ni skalar ert Supabase-projekt när applikationen växer.

Skalning säkerställer att appen förblir snabb och responsiv, även med många användare och stora datamängder. Vi går igenom viktiga strategier som anslutningspoolning, läsreplikor och arkitektoniska överväganden.

Varför skalning är viktigt

När applikationen får fler användare och behandlar mer data kan Ni stöta på prestandaflaskhalsar. Dessa kan leda till långsamma svarstider eller till och med driftstopp.

  • Användarupplevelse: Långsamma appar frustrerar användarna.
  • Tillgänglighet: Förhindra att appen kraschar under hög belastning.
  • Tillväxt: Stöd fler funktioner och användare utan att behöva bygga om arkitekturen från grunden.

Skalning hjälper Supabase-backenden att effektivt hantera ökad efterfrågan.

Anslutningspoolning förklarad

Databasanslutningar är resurskrävande. Om många anslutningar öppnas och stängs ofta kan databasserverns resurser ta slut.

Anslutningspoolning är en teknik där en pool med öppna databasanslutningar upprätthålls. När applikationen behöver en anslutning lånar den en från poolen i stället för att skapa en ny. När den är klar lämnas anslutningen tillbaka till poolen.

Supabase och anslutningspoolning

Supabase använder PgBouncer som standard för alla projekt. Det är en lättviktig anslutningspoolare för PostgreSQL.

Den fungerar som ett mellanlager mellan applikationen och databasen och hanterar anslutningar effektivt. Det innebär att applikationen kan begära många anslutningar, medan PgBouncer begränsar det faktiska antalet anslutningar till PostgreSQL-databasen, vilket förbättrar stabiliteten och prestandan.

Exempel på anslutning på klientsidan

Även om PgBouncer arbetar i bakgrunden initierar koden på klientsidan fortfarande Supabase-klienten. Klientbiblioteket är utformat för att fungera smidigt med de poolade anslutningarna.

Det här exemplet visar en typisk konfiguration av en Supabase-klient. Den underliggande anslutningshanteringen, inklusive poolning, hanteras av Supabase-infrastrukturen.

import { createClient } from '@supabase/supabase-js';

const supabaseUrl = 'https://YOUR_PROJECT_REF.supabase.co';
const supabaseKey = 'YOUR_ANON_KEY';
const supabase = createClient(supabaseUrl, supabaseKey);

async function main() {
  console.log("Fetching user data...");
  const { data, error } = await supabase
    .from('profiles')
    .select('username, avatar_url')
    .limit(1);

  if (error) {
    console.error('Error:', error.message);
  } else {
    console.log('User data:', data);
  }
}

main();

Läsreplikor: Fördela belastningen

När applikationen skalas blir läsåtgärder (hämtning av data) ofta fler än skrivåtgärder (infogning och uppdatering av data).

En läsreplika är en kopia av den primära databasen som endast hanterar läsfrågor. Alla skrivåtgärder går fortfarande till den primära databasen, som sedan asynkront replikerar ändringarna till läsreplikorna.

Fördelar med läsreplikor

Läsrepliker är en kraftfull skalningsstrategi för program med många läsoperationer:

  • Prestanda: Fördelar läsfrågor över flera databasinstanser, vilket minskar belastningen på primärdatabasen.
  • Hög tillgänglighet: Om primärdatabasen slutar fungera kan programmet eventuellt växla till en replik för läsningar.
  • Analys: Kör komplexa analysfrågor på repliker utan att påverka prestandan i huvudprogrammet.

Med Supabase kan du konfigurera läsrepliker för större projekt.

Arkitektoniska överväganden

Utöver databasspecifik skalning bör du överväga bredare arkitekturmönster:

  • Sharding: Fördela data över flera oberoende databaser baserat på en nyckel, till exempel användar-ID. Detta är mer komplext att implementera.
  • Mikrotjänster: Dela upp programmet i mindre, oberoende tjänster. Varje tjänst kan skalas oberoende av de andra.
  • Serverlösa funktioner: Använd Supabase Edge Functions för specifika, skalbara uppgifter som inte interagerar direkt med databasen.

Edge-cachning med CDN:er

Skalning handlar inte bara om databasen. För resurser som bilder, videor eller ofta hämtade API-svar är ett Content Delivery Network (CDN) avgörande.

CDN:er cachar innehåll närmare dina användare, vilket minskar fördröjningen och avlastar trafiken från Supabase Storage eller ditt API. Supabase integreras väl med CDN:er för hosting av statiska filer.

Kunskapskontroll: skalning

Låt oss testa dina kunskaper om skalningsstrategier för Supabase.

Sammanfattning: skala ditt projekt

Grattis! Du har slutfört lektionen om hur du skalar ditt Supabase-projekt.

Du har lärt dig om anslutningspoolning, som hanteras av PgBouncer, läsrepliker för att fördela läsbelastningen samt bredare arkitektoniska överväganden som sharding och mikrotjänster. Du har också fått lära dig om hur CDN:er kan användas för effektiv innehållsleverans.

Genom att tillämpa dessa strategier kan du se till att ditt Supabase-program fortsätter att ha god prestanda och vara robust när det växer.

Gratis att börja

Lär dig TypeScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
20
Lektioner
76

Vanliga frågor

Är lektionen ”Skalning av ditt Supabase-projekt” gratis?

Ja – hela texten till ”Skalning av ditt Supabase-projekt” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i NestJS: backend-API:er för företag, kan Ni uppgradera till CoddyKit PRO. Kursen i NestJS: backend-API:er för företag innehåller totalt 6 lektioner.

Vad lär jag mig i ”Skalning av ditt Supabase-projekt”?

Förstå strategier för att skala din Supabase-backend, inklusive anslutningspoolning, läsrepliker och arkitektoniska överväganden Ni övar på NestJS: backend-API:er för företag med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig NestJS: backend-API:er för företag?

Du behöver inga förkunskaper. Utbildningen i NestJS: backend-API:er för företag på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 6 av 6.

Hur lång tid tar lektionen ”Skalning av ditt Supabase-projekt”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här NestJS: backend-API:er för företag-lektionen?

Ja. Varje NestJS: backend-API:er för företag-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Cache-strategier (Redis)
  2. Övervakning av databasprestanda
  3. Lastbalansering och proxyservrar
  4. Strategier för frågeoptimering
  5. Serverlös distribution
  6. Skalning av ditt Supabase-projekt
← Tillbaka till NestJS: backend-API:er för företag