Тестирование Консул в режиме двух центров обработки данных - PullRequest
0 голосов
/ 11 мая 2018

Мы проводим интеграционное тестирование Java-приложения, которое использует Consul для Service Discovery. Примеры Embedded Consul запускает сервер Consul в одном центре данных, что хорошо работает для большинства наших тестирований.Однако мы пытаемся проверить ситуацию, в которой служебная запись существует в одном центре данных, а не в другом. Руководство консула использует vagrant для создания виртуальных сред для каждого центра обработки данных, но это кажется трудным сделать в среде автоматического тестирования.

Это единственный способ, чтобы кластер консулов ​​работал локально имоделирование двух центров обработки данных?Может ли библиотека Embedded Consul сделать это негласно для нас, или нам нужно вызвать vagrant в нашей конфигурации интеграционного тестирования?

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

В конечном итоге проблема заключалась в том, что каталог данных должен быть разным для каждого экземпляра:

consul agent -server -data-dir=/tmp/consul/node1 -node=agent-tpc -bind=127.0.0.1 -client==127.0.0.1 -datacenter=tpc
consul agent -server -data-dir=/tmp/consul/node2 -node=agent-cnj -bind=127.0.0.2 -client==127.0.0.2 -datacenter=cnj –retry-join-wan=127.0.0.1
0 голосов
/ 22 мая 2018

вы можете запускать несколько консул процессов на одном компьютере (на разных портах и ​​с разными каталогами данных). ЦОД передается в конфигурации или в качестве аргумента командной строки. вам вообще не нужно использовать Vagrant .. с Docker все должно быть очень просто ..

вот пример файла docker-compose.yml - https://github.com/hashicorp/consul/blob/master/demo/docker-compose-cluster/docker-compose.yml

...