имитировать отключение сети для базы данных с помощью тестконтейнеров - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь смоделировать отключение сети с помощью тестконтейнеров. Я хотел использовать контейнер Socat, чтобы открыть порт, а затем сбил его и снова поднял. Я не мог справиться с этим, потому что нет остановки.

Как мне это сделать?

1 Ответ

0 голосов
/ 10 января 2019

Это просто!

Вам нужны 2 контейнера, SocatContainer (предоставленный Testcontainers) и ваш целевой контейнер. Подключите их (Socat & target) к сети, см. Примеры здесь:
https://github.com/testcontainers/testcontainers-java/blob/bcecd5cd9f9325517fd45db585312df2624315bb/core/src/test/java/org/testcontainers/containers/NetworkTest.java

Если вам нужно смоделировать отключение, просто отключите вашу цель от сети (используя Docker-клиент, который вы получаете с DockerClientFactory.instance().client() и disconnectFromNetworkCmd).

После проверки правильности обработки сбоя подключите цель к сети с помощью connectToNetworkCmd).

Альтернативным решением будет использование Toxiproxy от Shopify:
https://github.com/shopify/toxiproxy. Запустите его в контейнере (конечно же, с помощью Testcontainers;)) и используйте его клиент Java для применения операций хаоса.

...