www.linkedin.com/feed/update/urn:li:activity:7082717957662916608/?updateEntityUrn=urn%3Ali%3Afs_feedUpdate%3A%28V2%2Curn%3Ali%3Aactivity%3A7082717957662916608%29
1 Users
0 Comments
6 Highlights
0 Notes
Tags
Top Highlights
๐ฅ๐ฎ๐ฏ๐ฏ๐ถ๐๐ ๐ค ๐๐. ๐๐ฎ๐ณ๐ธ๐ฎ ๐๐. ๐๐ฐ๐๐ถ๐๐ฒ๐ ๐ค: ๐ณ ๐๐๐ฒ ๐๐ถ๐ณ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ๐ ๐น๐ฃ๐ฒ๐ฟ๐ณ๐ผ๐ฟ๐บ๐ฎ๐ป๐ฐ๐ฒ ๐ฎ๐ป๐ฑ ๐ฆ๐ฐ๐ฎ๐น๐ฎ๐ฏ๐ถ๐น๐ถ๐๐: Kafka is designed for high throughput and horizontal scalability, making it well-suited for handling large volumes of data. RabbitMQ and ActiveMQ both offer high performance, but Kafka generally outperforms them in terms of throughput, particularly in scenarios with high data volume. ๐น๐ ๐ฒ๐๐๐ฎ๐ด๐ฒ ๐ฃ๐ฟ๐ถ๐ผ๐ฟ๐ถ๐๐: RabbitMQ and ActiveMQ support message prioritization, allowing messages with higher priority to be processed before those with lower priority. Kafka does not have built-in message priority support. ๐น๐ ๐ฒ๐๐๐ฎ๐ด๐ฒ ๐ข๐ฟ๐ฑ๐ฒ๐ฟ๐ถ๐ป๐ด: RabbitMQ and ActiveMQ guarantee message ordering within a single queue or topic, respectively. Kafka ensures message ordering within a partition but not across partitions within a topic. ๐น๐ ๐ฒ๐๐๐ฎ๐ด๐ฒ ๐ ๐ผ๐ฑ๐ฒ๐น:ย RabbitMQ uses a queue-based message model following the Advanced Message Queuing Protocol (AMQP), while Kafka utilizes a distributed log-based model. ActiveMQ is built on the Java Message Service (JMS) standard and also uses a queue-based message model. ๐น๐๐๐ฟ๐ฎ๐ฏ๐ถ๐น๐ถ๐๐: All three message brokers support durable messaging, ensuring that messages are not lost in case of failures. However, the mechanisms for achieving durability differ among the three, with RabbitMQ and ActiveMQ offering configurable durability options and Kafka providing built-in durability through log replication. ๐น๐ฅ๐ฒ๐ฝ๐น๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป: RabbitMQ supports replication through Mirrored Queues, while Kafka features built-in partition replication. ActiveMQ uses a Primary-Replica replication mechanism. ๐น๐ฆ๐๐ฟ๐ฒ๐ฎ๐บ ๐ฃ๐ฟ๐ผ๐ฐ๐ฒ๐๐๐ถ๐ป๐ด: Kafka provides native stream processing capabilities through Kafka Streams, similarly RabbitMQ offers stream processing too, while ActiveMQ relies on third-party libraries for stream processing. Ref: โจ RabbitMQ vs. Kafka vs. ActiveMQ: A Battle of Messaging Brokers:ย https://lnkd.in/g4N7UCPE
Additionally to what Akhil Nallapaneni said above, if your app is dealing with high volume of messages Kafka is the best for sure, but also, if your app doesn't deal with that high volume, RabbitMQ for example offers more options of delivering the messages, Called exchange types which might be very handy depending on your needs: RabbitMQ Exchange Types There are four basic RabbitMQ exchange types in RabbitMQ, each of which uses different parameters and bindings to route messages in various ways, These are: Direct Exchange Topic Exchange Fanout Exchange Headers Exchange Additionally, there are two more RabbitMQ exchange types: Default Exchange Dead Letter Exchange https://hevodata.com/learn/rabbitmq-exchange-type/#types
Kafka is beterr than other message queues because 1)Kafka offers much higher performance than any other messaging queue which helps us to deal with high volume of data 2)Kafka replicates the data and is able to support multiple consumers 3)Kafka automatically balances consumers in the event of failure 4)Kafka is faster than other queues, because messages in apache Kafka are not erased once the receiving system has read them, it is easier to log events 5) the way of storage in Kafka is log structured, which mean the new data is append to the end of log If your system deals with higher volumes of data then go with Kafka. Any priority of message are required then go with other ones
Kafka works on Pull mechanism.. Where as RabbitMQ and ActiveMQ works on push mechanism
Along with this Kafka uses WAL, and simplfied Sequential IO operations..
Here are two very good links to understand streams and how there is a difference between systems that support streams and systems that are pure stream based. https://www.oreilly.com/radar/the-world-beyond-batch-streaming-101/ https://www.oreilly.com/radar/the-world-beyond-batch-streaming-102/
Glasp is a social web highlighter that people can highlight and organize quotes and thoughts from the web, and access other like-minded peopleโs learning.