Ich erstelle eine Arbeitswarteschlangeneinrichtung, in der die verschiedenen Arbeiter/Konsumenten unterschiedliche Funktionen haben. Damit meine ich, dass nicht alle Arbeitsaufgaben von allen Arbeitern ausgeführt werden können.RabbitMQ für die Arbeitswarteschlange unter Verwendung von Benutzern mit unterschiedlichen Funktionen
Lassen Sie uns sagen, ich habe folgende Arbeiter:
Worker A
Capability 1
Capability 2
Capability 3
Worker B
Capability 1
Worker C
Capability 1
Capability 3
- Wenn ein Job
Capability 1
erfordert, kann sie von jedem Arbeiter ausgeführt werden. - Wenn ein Job
Capability 1
undCapability 2
erfordert, kann er nur vonWorker A
ausgeführt werden. - Wenn ein Job
Capability 1
undCapability 3
benötigt, kann es durchWorker A
oderWorker C
- und so weiter ... für solche
Frage
Ist RabbitMQ fähig/geeignet für den Versand Jobs ausgeführt werden Setup?
Danke. Eine Sache jedoch, ein Job kann mehr als eine Anforderung haben. Bedeutet das, dass ich auch Warteschlangen für jede Kombination von Anforderungen erstellen muss? Das ist für mich keine Option, fürchte ich, weil die Anzahl der einzelnen Bedingungen> 20 ist, daher werden alle Kombinationen eine sehr große Anzahl von Warteschlangen sein ... – anorm
In diesem Fall wird ein ausgeklügelter Austausch benötigt. So etwas wie ein Topic/Header Ex passt gut. Mit dem Thema EX müssen Sie mit der Routing-Schlüssel-Hierarchie kreativ werden und sehen, ob Sie Nachrichten nach Ihren Bedürfnissen filtern können. Wenn es keine echte Nachrichtenhierarchie gibt, dann benutze einen Header-Austausch, wo du mehrere Header setzen kannst und rate dem Hasen, JEDES/ALLE zu entsprechen, je nachdem, was du brauchst. Als Randbemerkung: Wenn Sie auf der ersten Ebene keine Filterung erreichen können, müssen Sie möglicherweise eine Austauschhierarchie erstellen und sie irgendwo stromabwärts aufteilen. Hinweis: Ex -> Ex-Bindung ist erlaubt. –