Cloud Tasks et Pub/Sub peuvent être utilisés pour la transmission de messages et l'intégration asynchrone. Toutefois, bien qu'ils fonctionnent de manière similaire, ils diffèrent sur quelques points. Cette page vous aide à choisir la meilleure option en fonction de votre cas d'utilisation.
Différences majeures
La principale différence entre Pub/Sub et Cloud Tasks réside dans la notion d'appel implicite ou explicite.
Pub/Sub tend à dissocier les éditeurs d'événements et les abonnés à ces événements. Les éditeurs n'ont pas besoin de savoir quoi que ce soit sur leurs abonnés. En conséquence, Pub/Sub n'accorde aux éditeurs aucun contrôle sur la distribution des messages, à l'exception de la garantie de distribution. Ainsi, Pub/Sub propose un appel implicite : un éditeur encourage implicitement les abonnés à l'exécution en publiant un événement.
En revanche, Cloud Tasks implique un appel explicite, qui permet à l'éditeur de conserver le contrôle total de l'exécution. Plus spécifiquement, l'éditeur définit un point de terminaison indiquant l'emplacement de distribution de chaque message.
De plus, Cloud Tasks fournit des outils pour la gestion des files d'attente et des tâches qui ne sont pas disponibles pour les éditeurs Pub/Sub. Certaines de ces fonctionnalités sont répertoriées ci-dessous :
- Planification de délais de distribution spécifiques
- Contrôles des rythmes de distribution
- Configuration des nouvelles tentatives d'exécution
- Consultation et gestion de tâches individuelles dans une file d'attente
- Déduplication de la création de tâches/messages
Comparatif détaillé des fonctionnalités
Caractéristique | Cloud Tasks | Cloud Pub/Sub |
---|---|---|
Envoi via webhooks | Oui | Oui |
Garantie de distribution de type "au moins une fois" | Oui | Oui |
Configuration des nouvelles tentatives d'exécution | Oui | Oui |
Déduplication de la création de tâches | Oui | Non |
Planification de la distribution | Oui | Non |
Livraison commandée | Non. L'ordre des tâches en file d'attente est conservé dans la mesure du possible. | Oui avec les clés de tri |
Contrôles des rythmes explicites | Oui | Les clients abonnés en mode pull peuvent implémenter le contrôle de flux. |
Extraction via l'API | Non | Oui |
Insertion de lots | Non | Oui |
Plusieurs gestionnaires/abonnés par message | Non | Oui |
Conservation des tâches/messages | 30 jours | Jusqu'à 31 jours |
Taille maximale des tâches/messages | 1 Mo | 10 Mo |
Rythme de distribution maximal | 500 RPS par file d'attente | Pas de limite supérieure |
Disponibilité géographique | Régionale | Monde |
Durée maximale du traitement push gestionnaire/abonné | 30 minutes (HTTP) 10 minutes (scaling automatique standard App Engine) 24 heures (scaling manuel ou de base standard App Engine) 60 minutes (environnement flexible App Engine) |
10 minutes pour les opérations push |
Nombre de files d'attente/d'abonnements par projet | 1 000 par projet, ou plus via les demandes d'augmentation de quota | 10 000 par projet |