2017-05-08 2 views
1

Was ist die Beziehung zu den Kanälen: DirectChannel, QueueChannel, ExecutorChannel, PriorityChannel, RendezvousChannel, PublishSubscribeChannel zu Integrationskomponenten für den Fall der beste Ansatz, sie zu verwenden?Federintegration spezifische Kanäle

Antwort

1

Es gibt 3 erstklassige Bürger in Spring Integration: Endpoint, Channel und Handler. Der Endpunkt ruft Daten vom Kanal ab, um sie im Handler zu verarbeiten.

Verschiedene Kanaltypen dienen unterschiedlichen Ansätzen, um Daten vom Endpunkt zu erhalten.

DirectChannel ist sehr einfach und seine Daten werden direkt aus dem Thread des Aufrufers behandelt. Wie im einfachen rohen Java - main -> Service-Methode.

QueueChannel dient zum Puffern von Daten in der internen Warteschlange. Der Endpunkt fragt Daten von dort in der gewünschten Geschwindigkeit ab.

ExecutorChannel verschiebt nur die Daten in den freien Thread der konfigurierten Executor. Dann wird der Handler bereits in diesem Thread aufgerufen.

PriorityChannel ist ähnlich wie die QueueChannel, aber mit der Reihenfolge für diese Daten, die in der internen Warteschlange im Moment des Sendens gespeichert ist.

RendezvousChannel basiert vollständig auf der SynchronousQueue von Java.

PublishSubscribeChannel bietet a-la topic Implementierung - alle Handler erhalten die gleiche Nachricht.

Weitere Informationen zu dem Thema in der Dokumentation und JavaDocs.

vergessen Sie auch nicht über Theorie zu diesem Thema: http://www.enterpriseintegrationpatterns.com/

+0

Auch [Messaging Kanäle] (http://docs.spring.io/spring-integration/reference/html/messaging-channels-section sehen. html) im Referenzhandbuch für Beschreibungen jedes Typs. –