Wie erreiche ich Multi-Tenancy im Kontext von Kafka und Sturm?

8

Was sind die besten Praktiken für den Aufbau einer Multi-Tenant-App im Kontext von Kafka und Storm?

Beispiel: Erstellen eines Themas für jeden Mandanten und Verwenden von Multi-Themen-Ausläufen (mithilfe von Platzhaltern).

    
user2550587 07.05.2014, 11:21
quelle

3 Antworten

2

Ich denke, dass dieses Thema für jeden Mieter die richtige Wahl ist .

Die Namenskonvention könnte etwa so aussehen: topic_base_name_tenant_id .

Die Gründe sind:

  1. Es ermöglicht flexible Konfiguration für jeden Mandanten (wie @Sebastian zuvor erwähnt).
  2. Klarere logische Trennung.

Nun sagen wir, dass wir einen anderen Ansatz verwenden werden. Zum Beispiel Partition für jeden Mandanten. Es könnte problematisch sein, da:

  1. Sie begrenzen die Parallelitätsstufe auf die Anzahl der Mandanten.
  2. Neue Mandanten hinzufügen, neue Partition hinzufügen → alte Nachrichten erneut publizieren (Der Standard-Partitionierungsalgorithmus ist: message_key% partition_size).
user2550587 09.03.2016, 22:02
quelle
2

Manchmal benötigen Sie möglicherweise mehrere Themen pro Anwendung. In diesem Fall könnten Sie der folgenden Namenskonvention folgen: topic_base_name_tenant_id. Für ein bestimmtes Basisthema haben Sie also so viele Themen wie die Anzahl der Mandanten

    
Pranab 20.03.2015 22:44
quelle
1

Betrachten Sie meine Antwort nicht als "Best Practice", weil ich kein Kafka-Experte bin, aber falls es hilft: Wir standen vor einem ähnlichen Design-Szenario (ein Kafka-Endpunkt, der mehreren Teams zur Verfügung steht) Ereigniserzeugung und -routing). Nachdem wir uns über verschiedene Alternativen Gedanken gemacht haben, haben wir entschieden, was Sie vorschlagen: ein Thema pro Anwendung zu haben (man könnte sagen Mieter), das Thema (Partition, Grenzen, etc.) entsprechend den Anforderungen der Anwendung anpassen.

Hoffe, das hilft.

    
Sebastian 18.07.2014 16:33
quelle

Tags und Links