Неспособность увидеть, как шаблон посла улучшает модульность / простоту контейнерной архитектуры в Docker

Я не могу понять, как реализация шаблона посла поможет нам упростить / упростить структуру нашей контейнерной архитектуры.

Допустим, у меня есть контейнер базы данныхdb на хосте A и используется программойdb-client который находится на хосте B, которые связаны через контейнеры пословdb-ambassador а такжеdb-foreign-ambassador по сети:

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

Соединения между контейнерами в одной машине, например,db вdb-ambassador, а такжеdb-foreign-ambassador вdb-client делаются через докера--link параметр в то время какdb-ambassador а такжеdb-foreign-ambassador разговаривает по сети.

Но ,--link это просто модный способ вставки IP-адресов, портов и другой информации из одного контейнера в другой. При сбое контейнера другой связанный с ним контейнер не получает уведомления и не узнает новый IP-адрес аварийного контейнера при его перезапуске. Короче говоря, если контейнер, связанный с другим, перестал работать, ссылка также не работает.

Чтобы рассмотреть мой пример, скажем, чтоdb аварийно завершает работу и перезапускается, таким образом, назначается другому IP.db-ambassador пришлось бы тоже перезапустить, чтобы обновить связь между ними ... За исключением того, что вы не должны. Еслиdb-ambassador перезапущен, IP-адрес тоже изменился бы, иforeign-db-ambassador не будет знать, где его достичь при новом IP-адресе.

квотированиестатья в документах Докера о посольском образце,

Когда вам нужно перенаправить своего потребителя, чтобы он общался с другим сервером Redis, вы можете просто перезапустить контейнер redis-ambassador, к которому подключен потребитель.

Этот шаблон также позволяет вам прозрачно переместить сервер Redis на другой хост докера от потребителя.

кажется, что это именно та проблема, которую она пытается решить. Который, насколько я понимаю, это совершенно не так. Нет, если вы считаете--link полезно только до тех пор, пока связанный контейнер не падает. Возможность запустить аварийный узел на его предыдущем IP-адресе была бы хорошим обходным путемесли поддерживаетсяПо крайней мере, для архитектуры малого / среднего размера.

Я что-то упускаю из виду?

Ответы на вопрос(1)

Ваш ответ на вопрос