2015-11-03 4 views
2

Какой механизм использует Couchbase Sync Gateway для получения изменений базы данных на сервере couchbase.Как Couchbase Sync Gateway получает изменения Couchbase Server?

  1. Проводит ли он длительный опрос или создает соединение в сети?
  2. Или же часто вызывает API REST API Couchbase? Если да, то какой REST API и какие запросы он отправляет в HTTP-запросе для этого REST API?

ответ

1

Ни один из них - DCP (тот же базовый протокол, используемый репликацией и XDCR), чтобы подписаться на обновления с Couchbase Server.

1

После некоторых исследований я выяснил следующие моменты.

1) sync_gateway сначала устанавливает соединение tcp с сервером couchbase на порт 8091 и через это соединение tcp отправляет HTTP-запрос GET для вызова REST API/pool ad/pool/default.

2) После этого всякий раз, когда происходит изменение документа, инициированное пользователем, sync_gateway отправляет пакет tcp с полем данных, запрашивая информацию пользователя и информацию о документе, которая изменяется.

3) Теперь sync_gateway отправляет другой TCP-пакет с пересмотренной ревизией пакета и получает ответ от сервера couchbase, который был пересмотрен.

4) Все эти разговоры происходят с использованием пакетов TCP PSH ACK. Таким образом, потоки HTTP-пакетов отсутствуют. Только TCP-серверы общаются с обеих сторон.