Как Couchbase Sync Gateway получает изменения Couchbase Server?

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

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

person ajaygopal07    schedule 03.11.2015    source источник


Ответы (2)


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

person DaveR    schedule 03.11.2015

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

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

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

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

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

person ajaygopal07    schedule 06.11.2015