В чем разница между google.cloud.pubsub_v1 и google.cloud.pubsub?

Я вижу, что оба они используются в другой документации от Google:

from google.cloud import pubsub

Находится в:

В то время как

from google.cloud import pubsub_v1

Находится в:


person gunit    schedule 10.01.2018    source источник


Ответы (1)


Библиотека google.cloud.pubsub призвана упростить получение максимальной производительности от издателя и подписчика Cloud Pub / Sub. Он имеет более продвинутые функции, такие как пакетирование сообщений, асинхронная доставка сообщений и автоматическое продление крайнего срока подтверждения для сообщений, еще не подтвержденных подписчиком. API отличается от базового API службы Cloud Pub / Sub. Например, эта библиотека не предоставляет напрямую метод pull; сообщения вместо этого доставляются в обратный вызов, переданный в open метод подписчика.

Библиотека google.cloud.pubsub_v1 предоставляет базовый API. напрямую. Это может быть полезно в конкретных случаях, когда этот уровень управления необходим, например, когда требуется синхронный подписчик для выполнения запросов в ответ на синхронные действия от подчиненной зависимости.

По возможности лучше использовать библиотеку google.cloud.pubsub.

person Kamal Aboul-Hosn    schedule 16.01.2018
comment
Привет, Просто чтобы подтвердить, это все еще в силе? Я сделал pip install google-cloud-pubsub только сейчас, и в virtualenv все, кажется, создает папки / site-packages / google / cloud / _2 _ / * ... выполнение pip install google-cloud-pubsub_v1 возвращает: ›Не удалось найти версию, удовлетворяющую требованию google-cloud-pubsub_v1 .. . - person Vibhor Jain; 27.08.2018
comment
кроме того, похоже, что клиентская библиотека (pubsub_v1) больше не предполагает REST API, она больше поддерживает только API на основе gRPC ... Спасибо! - person Vibhor Jain; 27.08.2018
comment
@VibhorJain. Пакет для установки google-cloud-pubsub, который использует пространства имен google и google.cloud и устанавливается в те каталоги pubsub_v1, как вы нашли. Название каталога не имеет значения. Google перемещает все клиентские библиотеки в gRPC, как упоминалось cloud.google.com/ apis / docs / client-libraries -olated Мы планируем обновить как можно больше облачных клиентских библиотек до gRPC. Почему бы и нет? буферы протокола по http / 2 быстрее. В идеале не пишите собственный клиентский код REST, позвольте клиентской библиотеке обрабатывать детали низкого уровня. - person Davos; 04.10.2018
comment
Похоже, нет разницы pubsub, похоже, просто импортирует из pubsub_v1, см. github.com/googleapis/google-cloud-python/blob/master/pubsub/ И github.com/googleapis/google-cloud-python/blob/master/pubsub/ т.е. класс pubsub SubcriberClient () IS pubsub_v1.subscriber.client Метод pull был занесен в черный список в клиенте pubsub_v1 и, следовательно, в клиенте pubsub. Этот метод также был повторно использован github.com/googleapis-python-cloud / commit / - person Davos; 04.10.2018
comment
Я думаю, что этот ответ все еще верен, потому что есть некоторые вещи, которые не раскрываются, например фьючерсы, и у него есть некоторые хитрые декораторы, черные списки и механизмы добавления методов для управления интерфейсом. Он также активно использует __all__ для точного контроля того, что импортируется. - person Davos; 04.10.2018
comment
@Davos Я уже задавал здесь вопрос https://stackoverflow.com/questions/52659169/is-google-cloud-pubsub-v1-publisherclient-thread-safe влияет ли это на выбор между pubsusb и pubs_v1? - person Cryptoharf84; 05.10.2018
comment
@Fadi no Я думаю, что ответ на этот вопрос ясен. На этой странице объясняется разница между старым google api client libraries и новым google cloud client libraries. Имена похожи, и это сбивает с толку. cloud.google.com/apis/docs/client-libraries-explained - person Davos; 08.10.2018