Quelle est la différence entre Kinesis et SQS? Il semble capable de servir des cas d'utilisation similaires, à l'exception des fragments et des clés de partition.


Réponse 1:
  • Routage des enregistrements de données associés vers le même processeur d'enregistrement (comme pour le streaming MapReduce). Par exemple, le comptage et l'agrégation sont plus simples lorsque tous les enregistrements pour une clé donnée sont acheminés vers le même processeur d'enregistrement. Par exemple, vous souhaitez transférer des données de journal de l'hôte d'application vers l'hôte de traitement / d'archivage tout en conservant l'ordre des instructions de journal. Possibilité pour plusieurs applications de consommer le même flux simultanément. Par exemple, vous disposez d'une application qui met à jour un tableau de bord en temps réel et une autre qui archive les données dans Amazon Redshift. Vous voulez que les deux applications consomment les données du même flux simultanément et indépendamment.Possibilité de consommer les enregistrements de données dans le même ordre quelques heures plus tard. Par exemple, vous disposez d'une application de facturation et d'une application d'audit qui s'exécute quelques heures derrière l'application de facturation. Étant donné qu'Amazon Kinesis stocke les données jusqu'à 24 heures, vous pouvez exécuter l'application d'audit jusqu'à 24 heures derrière l'application de facturation.
  • Sémantique de la messagerie (comme l'acquittement / l'échec au niveau du message) et le délai d'expiration de la visibilité. Par exemple, vous disposez d'une file d'attente d'éléments de travail et souhaitez suivre la réussite de chaque élément indépendamment. Amazon SQS suit l'acquittement / l'échec, de sorte que l'application n'a pas à maintenir un point de contrôle / curseur persistant. Amazon SQS supprimera les messages confirmés et redistribuera les messages ayant échoué après un délai de visibilité configuré. Délai de message individuel. Par exemple, vous disposez d'une file d'attente de travaux et devez planifier des travaux individuels avec un retard. Avec Amazon SQS, vous pouvez configurer des messages individuels pour qu'ils aient un délai allant jusqu'à 15 minutes.Augmente la concurrence / le débit de manière dynamique au moment de la lecture. Par exemple, vous disposez d'une file d'attente de travail et souhaitez ajouter plus de lecteurs jusqu'à ce que l'arriéré soit effacé. Avec Amazon Kinesis, vous pouvez évoluer jusqu'à un nombre suffisant de fragments (notez cependant que vous devrez provisionner suffisamment de fragments à l'avance). Par exemple, vous mettez en mémoire tampon les demandes et les changements de charge en raison de pics de charge occasionnels ou de la croissance naturelle de votre entreprise. Étant donné que chaque demande en mémoire tampon peut être traitée indépendamment, Amazon SQS peut évoluer de manière transparente pour gérer la charge sans aucune instruction de provisionnement de votre part.

Réponse 2:

Honnêtement, je ne vois toujours pas la différence. Et aucune de ces réponses ne m'a aidé. Les réponses ici sont le genre de réponses que j'attendrais des chefs de produit et non des utilisateurs réels (aucune infraction destinée à l'un ou l'autre groupe).

Kinesis évite-t-il le besoin d'un service comme RabbitMQ? Aurais-je jamais envie ou besoin de les utiliser ensemble? Si oui, pourquoi?

Quels sont les cas d'utilisation spécifiques où Kinesis fonctionne et que RabbitMQ ne fonctionne pas? Et vice versa?

Edit: J'ai beaucoup appris depuis que j'ai écrit cette réponse. Ce que je me dirais à l'époque, c'est que Kinesis est essentiellement un service de type Kafka d'Amazon tandis que SQS est son service de type RabbitMQ. Et je me dirais d'aller en savoir plus sur les raisons pour lesquelles les gens utilisent Kafka. C'est un cas d'utilisation très différent. Kafka est plus pour l'ingestion de données et fait partie d'un pipeline de streaming, tandis que RabbitMQ est plus pour le passage de messages en temps réel. Si vous avez besoin d'une latence inférieure à 100 ms pour envoyer et recevoir des données, alors SQS / Rabbit ont plus de sens. Si la latence de centaines de millisecondes ou de secondes est suffisante, alors Kafka / Kinesis commence à être une meilleure option pour de nombreux cas d'utilisation.


Réponse 3:

Honnêtement, je ne vois toujours pas la différence. Et aucune de ces réponses ne m'a aidé. Les réponses ici sont le genre de réponses que j'attendrais des chefs de produit et non des utilisateurs réels (aucune infraction destinée à l'un ou l'autre groupe).

Kinesis évite-t-il le besoin d'un service comme RabbitMQ? Aurais-je jamais envie ou besoin de les utiliser ensemble? Si oui, pourquoi?

Quels sont les cas d'utilisation spécifiques où Kinesis fonctionne et que RabbitMQ ne fonctionne pas? Et vice versa?

Edit: J'ai beaucoup appris depuis que j'ai écrit cette réponse. Ce que je me dirais à l'époque, c'est que Kinesis est essentiellement un service de type Kafka d'Amazon tandis que SQS est son service de type RabbitMQ. Et je me dirais d'aller en savoir plus sur les raisons pour lesquelles les gens utilisent Kafka. C'est un cas d'utilisation très différent. Kafka est plus pour l'ingestion de données et fait partie d'un pipeline de streaming, tandis que RabbitMQ est plus pour le passage de messages en temps réel. Si vous avez besoin d'une latence inférieure à 100 ms pour envoyer et recevoir des données, alors SQS / Rabbit ont plus de sens. Si la latence de centaines de millisecondes ou de secondes est suffisante, alors Kafka / Kinesis commence à être une meilleure option pour de nombreux cas d'utilisation.


Réponse 4:

Honnêtement, je ne vois toujours pas la différence. Et aucune de ces réponses ne m'a aidé. Les réponses ici sont le genre de réponses que j'attendrais des chefs de produit et non des utilisateurs réels (aucune infraction destinée à l'un ou l'autre groupe).

Kinesis évite-t-il le besoin d'un service comme RabbitMQ? Aurais-je jamais envie ou besoin de les utiliser ensemble? Si oui, pourquoi?

Quels sont les cas d'utilisation spécifiques où Kinesis fonctionne et que RabbitMQ ne fonctionne pas? Et vice versa?

Edit: J'ai beaucoup appris depuis que j'ai écrit cette réponse. Ce que je me dirais à l'époque, c'est que Kinesis est essentiellement un service de type Kafka d'Amazon tandis que SQS est son service de type RabbitMQ. Et je me dirais d'aller en savoir plus sur les raisons pour lesquelles les gens utilisent Kafka. C'est un cas d'utilisation très différent. Kafka est plus pour l'ingestion de données et fait partie d'un pipeline de streaming, tandis que RabbitMQ est plus pour le passage de messages en temps réel. Si vous avez besoin d'une latence inférieure à 100 ms pour envoyer et recevoir des données, alors SQS / Rabbit ont plus de sens. Si la latence de centaines de millisecondes ou de secondes est suffisante, alors Kafka / Kinesis commence à être une meilleure option pour de nombreux cas d'utilisation.