No ver cómo el patrón de embajador mejora la modularidad / simplicidad de la arquitectura de contenedores en Docker

No veo cómo la implementación del patrón de embajador nos ayudaría a simplificar / modularizar el diseño de nuestra arquitectura de contenedor.

Digamos que tengo un contenedor de base de datosdb en el host A y es utilizado por un programadb-client que se encuentra en el host B, que están conectados a través de contenedores de embajadoresdb-ambassador ydb-foreign-ambassador sobre una red:

[host A (db) --> (db-ambassador)] <- ... -> [host B (db-forgn-ambsdr) --> (db-client)]

Conexiones entre contenedores en la misma máquina, p.db adb-ambassadorydb-foreign-ambassador adb-client se realizan a través de Docker--link parámetro mientrasdb-ambassador ydb-foreign-ambassador habla por la red.

Pero ,--link es solo una forma elegante de insertar direcciones IP, puertos y otra información de un contenedor a otro. Cuando falla un contenedor, el otro contenedor que está vinculado a él no recibe notificación, ni sabrá la nueva dirección IP del contenedor que falla cuando se reinicia. En resumen, si un contenedor que está vinculado a otro se apagó, el enlace también está muerto.

Para considerar mi ejemplo, digamos quedb se bloqueó y se reinicia, por lo tanto, se asigna a una IP diferente.db-ambassador tendría que reiniciarse también, para actualizar el enlace entre ellos ... Excepto que no debería. Sidb-ambassador se reinicia, la IP también habría cambiado, yforeign-db-ambassador no sabrá dónde encontrarlo en la nueva dirección IP.

Citandoun artículo en los documentos de Docker sobre el patrón de embajador,

Cuando necesite volver a conectar a su consumidor para hablar con un servidor Redis diferente, puede reiniciar el contenedor de redis-embajador al que está conectado el consumidor.

Este patrón también le permite mover de manera transparente el servidor Redis a un host acoplado diferente del consumidor.

Parece que este es exactamente el problema que está tratando de resolver. Lo cual, en lo que a mi entender se refiere, no fue totalmente así. No si consideras--link solo es útil siempre que el contenedor vinculado no se bloquee. La opción de iniciar un nodo que falla en su IP anterior habría sido una buena soluciónsi es compatible, al menos para una arquitectura pequeña / mediana.

¿Me estoy perdiendo algo obvio?

Respuestas a la pregunta(1)

Su respuesta a la pregunta