Заказчик и коммиттер тратят время, чтобы поместить данные в книгу - PullRequest
0 голосов
/ 08 мая 2018

Мы столкнулись с проблемой, связанной с помещением данных в книгу. Если мы попытаемся вставить данные в книгу, а затем сразу же загрузить вставленные данные, мы ничего не получим. Если мы просим через 3 секунды или около того, все кажется хорошим. Любое решение для преодоления этой задержки для лучшего пользовательского опыта?

1 Ответ

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

Поездка, которую совершает транзакция:

  1. Клиент (точка отправления)
  2. Служба заказа
  3. кластер кафки
  4. Служба заказа
  5. Передающий узел

Где:

  • Этапы 3 и 4 применяются только в том случае, если вы используете службу заказов на базе Kafka
  • Транзакция проверяется на этапе 5 перед ее фиксацией в бухгалтерскую книгу

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

Что касается 3-секундной задержки, я подозреваю, что это происходит из-за того, что для вашего Orderer.BatchTimeout установлено значение по умолчанию, равное 2 секундам, а для вас Orderer.BatchSize.MaxMessageCount установлено значение больше 1 (значение по умолчанию равно 10).

Это означает, что служба заказа не будет отрезать блок (и доставит его отправляющим партнерам) до тех пор, пока не будет выполнено или из этих двух условий. Вы отправляете менее Orderer.BatchSize.MaxMessageCount транзакций, поэтому службе заказа необходимо подождать Orderer.BatchTimeout секунд, прежде чем она обрежет блок.

Чтобы уменьшить время, необходимое для отображения транзакции в вашей бухгалтерской книге, установите Orderer.BatchTimeout на небольшое значение (скажем, 1 мс), а Orderer.BatchSize.MaxMessageCount на 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...