2

Kann mir jemand in einfachen Worten erklären, was das Architekturkonzept eines Ambassador im Cluster Computing ist? Was sind die Vorteile einer Implementierung in ein Microservicemuster?Was ist das Konzept von Ambassador in verteilten Systemen?

Ich habe in letzter Zeit Docker und Docker-Schwarm studiert und ich habe diesen Begriff wiederholt über Artikel oder Repos erwähnt. Zum Beispiel in this amazing project, haben sie ein Repository namens docker-ambasssador. Oder dieses andere Projekt namens ctlc-docker-ambassador.

+0

http://stackoverflow.com/questions/26604734/failing-to-see-how-ambassor-pattern-enhancen-modularity-simplicty-of-contain –

Antwort

1

Einer der Hauptvorteile von Microservices im Allgemeinen ist die Möglichkeit, zugrunde liegende Komponenten zu entfernen, ohne dass der Rest der App/des Ökosystems auf Änderungen aufmerksam wird. Das Botschafter-Muster ermöglicht es, Teile zu bewegen und zu verändern, während der Code weiterhin mit einem einzigen Ort verbunden ist. Einer der Links, die Sie hatten eine großartige Erklärung/Beispiel vorgesehen:

` Anstatt hartzucodieren Netzwerkverbindungen zwischen einem Service-Consumer und Provider, Dockarbeiter fördert Service Portabilität, zum Beispiel statt:

(Verbraucher) - > (redis) die Sie auffordert, den Verbraucher starten Sie es auf einen anderen redis Service zu befestigen, können Sie Botschafter hinzu:

(Verbraucher) -> (redis-Botschafter) -> (redis) Oder

(Verbraucher) -> (Redisbotschafter) --- network ---> (redisbotbassador) -> (redis) Wenn Sie Ihren Consumer neu verdrahten müssen, um mit einem anderen Redis-Server zu sprechen, können Sie einfach den Redis-Ambassador-Container neu starten, mit dem der Consumer verbunden ist zu. `

In diesem Fall kann die zugrunde liegende Komponente (redis) ohne den Code, der redis knowing verwendet, verschoben oder aktualisiert werden. Es würde sogar erlauben, von redis zu einem anderen KV-Speicher umzuschalten, wenn der Code etwas schlauer wäre.

+0

Aber was hält Sie davon ab, Port-Mapping in der Redis zu codieren -Botschafter? Ich meine, übertragen Sie das Problem nicht einfach auf einen anderen Knoten in Ihrer verteilten Architektur? –

+0

Abgesehen davon, dass man einfach weiß, wo sich der zugrunde liegende Dienst befindet, kann ein Ambassador-Knoten "intelligent" sein, womit gemeint ist, dass er den Verkehr basierend auf eingehenden Anfragen lenken kann. Angenommen, Sie haben mehrere Redis-Knoten für verschiedene Zwecke verwendet (Cache, Metadaten usw.). Die konsumierenden Kunden könnten alle mit dem einen Botschafter sprechen, der Anfragen intelligent verwalten und den Verkehr zum richtigen Zielort lenken könnte. Im Grunde wird es zu diesem Zeitpunkt ein intelligenter Lastausgleicher. Wiederum nicht die einzige Verwendung für ein kompliziertes und flexibles Werkzeug. –