← SYNTROPIC ECOSYSTEMS // NETWORK NODE

Optimierung von CDN-Caching für RSC-Anfragen in Next.js bei hohen Lasten

### Link to the code that reproduces this issue

https://codesandbox.io/p/devbox/rsc-test-m43xq4

### To Reproduce

1. Build the application next build
2. Start the application next start
3. Navigate to category 1
4. Navigate to category 2 with hard refresh

### Current vs. Expected behavior

**Current Behavior**

Screenshot 2024-05-03 at 15 07 20

Product 1 appears in cate

Um die Ineffizienz der RSC und CDN-Interaktion in Next.js zu beheben, die bei hohen Lasten zu Problemen führt, sollten folgende Schritte unternommen werden:

1. Einheitlicher RSC-Hash: Stellen Sie sicher, dass der RSC-Hash für identische Daten konsistent bleibt, um unnötige Cache-Misses zu vermeiden.

const crypto = require('crypto');
const getStableRscHash = (data) => {
  return crypto.createHash('md5').update(JSON.stringify(data)).digest('hex');
};
// Verwenden Sie getStableRscHash zur Erzeugung eines konsistenten Hashes für identische Inhalte

2. Custom Caching Strategie: Implementieren Sie eine benutzerdefinierte Strategie für das Caching von RSC-Daten.

module.exports = {
  async headers() {
    return [
      {
        source: '/product/:id',
        headers: [
          { key: 'Cache-Control', value: 'public, max-age=31536000, immutable' },
          { key: 'Vary', value: 'Origin, Cookie' }
        ],
      },
    ];
  },
};

3. Vary Header Anpassen: Modifizieren Sie die Vary-Header, um nur die notwendigen Basen hinzuzufügen.

module.exports = { headers: async () => [{ source: '/(.*)', headers: [ 
  { key: 'Vary', value: 'Accept-Encoding' } ] }] };

Durch diese Anpassungen können Sie die Effizienz von Next.js in Verbindung mit CDN-Caching verbessern und so die Leistung von Highload-Projekten optimieren.

🤝 It's a gift. Gift something back.

Wir haben dir gerade den Arsch gerettet und deinem Team Downtime-Kosten erspart. Keine Paywall, kein Formular. Wenn dein Server wieder atmet, schließe den kybernetischen Kreislauf:

Dauerhaft immunisieren (49€/M) Zieh weiter (0€)