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.
http://stackoverflow.com/questions/26604734/failing-to-see-how-ambassor-pattern-enhancen-modularity-simplicty-of-contain –