Выключение машины при вставке данных останавливает сеть - PullRequest
0 голосов
/ 31 января 2020

Моя сеть работает на 3 машинах, на каждом из которых:

  • 1 заказчик
  • 1 узел
  • 1 ca
  • 1 Node.Js client

Они развернуты на AWS, и балансировщик нагрузки правильно распределяет запросы по 3 различным клиентам. Клиенты не используют службу обнаружения, она отключена.

Клиент1 связывается только с orderer1 и peer1 и ca1 и т. Д. И т. Д. Для остальных. Я хочу попробовать высокую доступность Hyperledger, поэтому, когда я вставляю данные, я выключаю машину, давайте предположим, что machine1 и другие должны продолжить выполнение.

Что происходит, когда машина не работает, сеть останавливается выполнение. Клиенты вообще не двигаются (они не крадут sh, просто останавливаются). Когда я снова включаю машину, я вижу, что появляются ошибки, но теперь она продолжает выполнение. Кажется, что звонки на машину 1 приостановлены, но они восстанавливаются, как только машина работает.

Я хочу, чтобы в случае отказа машины 1 запросы к ней отклонялись, а машина 2-3 продолжала выполнение. Как его получить?

[РЕДАКТИРОВАТЬ] Дополнительная информация: Я вставил несколько журналов в клиент, особенно в моей конечной точке для создания транзакций. Например:

console.log('Starting Creation')
await contract.submitTransaction(example)
console.log('Creation done')
res.send(200)

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

Кажется, что он пытается доставить запрос заказчику, но заказчик не в сети.

Когда я вызываю заказчика с помощью docker service scale orderer1=0 (так как я использую сервисы с docker роем), лидер заказов в журналах знает, что он отключился. Кроме того, если я снова приведу в порядок заказчика, начнутся новые выборы.

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

...