`
哈哈哈558
  • 浏览: 14591 次
社区版块
存档分类
最新评论

深度剖析 Kafka/RocketMQ 总结

 
阅读更多

 

1、生产端:

1)生产端必须保证单线程同步发送,将顺序消息发送到同一个分区(当然如果发生了文中所描述的 Kafka 集群中意外情况,还是有可能会打乱消息的顺序,因此无论是 Kafka 还是 RocketMQ 都无法保证严格的顺序消息);

2、消费端:

2)多分区的情况下:

如果想要保证 Kafka 在消费时要保证消费的顺序性,可以使用每个线程维护一个 KafkaConsumer 实例,并且是一条一条地去拉取消息并进行消费(防止重平衡时有可能打乱消费顺序);对于能容忍消息短暂乱序的业务(话说回来, Kafka 集群也不能保证严格的消息顺序),可以使用单 KafkaConsumer 实例 + 多 worker 线程 + 一条线程对应一个阻塞队列消费线程模型。

3)单分区的情况下:

由于单分区不存在重平衡问题,以上两个线程模型的都可以保证消费的顺序性。

另外如果是 RocketMQ,使用 MessageListenerOrderly 监听消费可保证消息消费顺序。

很多人也有这个疑问:既然 Kafka 和 RocketMQ 都不能保证严格的顺序消息,那么顺序消费还有意义吗?

一般来说普通的的顺序消息能够满足大部分业务场景,如果业务能够容忍集群异常状态下消息短暂不一致的情况,则不需要严格的顺序消息。

如果你对文章还有什么疑问和补充或者发现文中有错误的地方,欢迎关注我的公众号「后端进阶」留言给我,我们一起探讨。(企业架构源码可以加求球:三五三六二四七二五九)

分享到:
评论

相关推荐

    Kafka vs RocketMQ—— Topic数量对单机性能的影响1

    在本文中,我们将对比分析Apache Kafka与Apache RocketMQ在处理大量Topic时的性能表现。上一期测试主要关注了三款消息中间件(Kafka、RabbitMQ、RocketMQ)在简单消息发送场景下的性能,而本期则模拟了一个更为实际...

    MQ对比:Kafka VS Rocketmq VS Rabbitmq.pdf

    MQ对比:Kafka VS Rocketmq VS Rabbitmq 超详细 ,值的收藏,参考资料

    kafka资源可视化管理工具

    我们在项目开发中根据实际业务需求会使用到一些中间件,比如缓存redis、消息队列Kafka/RocketMQ/RabbitMQ等,在代码中集成后,可以通过命令来查看数据的走向,但我们更希望的是有一些可视化的辅助工具,来帮助我们...

    Kafka vs RocketMQ多Topic对性能稳定性的影响1

    下的测试对图,是来评测汗宝马和蒸汽机车谁快的组竞速曲线:图1 汗宝马和蒸汽车的速度稳定性对上图的横轴表测试时间,纵轴表车和马的速度,可以看到,马的加速和最速度均

    安装rocketmq.docx

    nohup sh /usr/local/rocketmq/bin/mqbroker -n 192.168.140.128:9876 -c /usr/local/rocketmq/conf/broker.conf & ``` 要停止 RocketMQ 服务,使用以下命令: ```bash /usr/local/rocketmq/bin/mqshutdown ...

    kafka-2.11-2.4.1安装包以及linux(centos7)安装kafka-2.11-2.4.1详细文档

    sudo -u kafka /usr/local/kafka/bin/kafka-topics.sh --create --topic test --partitions 1 --replication-factor 1 --if-not-exists --zookeeper localhost:2181 # 发送消息 echo "Hello, Kafka" | sudo -u ...

    linux安装kafka教程

    /DATA/kafka/kafka_2.12-2.0.0/bin/zookeeper-server-start.sh /DATA/kafka/kafka_2.12-2.0.0/config/zookeeper.properties & sleep 3 # 启动 Kafka /DATA/kafka/kafka_2.12-2.0.0/bin/kafka-server-start.sh /DATA/...

    kafka开发和rocketmq消息技术文档

    通过阅读《Kafka 权威指南》和《RocketMQ 实战与原理解析》这两本书,你可以深入理解这两个消息中间件的架构、配置、最佳实践以及如何在实际项目中应用它们。对于分布式消息系统的设计和实现,这两份文档将提供宝贵...

    java相关centos7.5软件安装手册

    基础软件:wget/vim/netstat java相关: jdk/mysql/kafka/zookeeper/rocketMQ/nacos/seata/docker/jenkins/fastdfs/flink/hadoop/elk

    canal1.1.5版本,包含服务端、客户端、源码

    主要用于访问github下载时速度过慢的使用 重点优化MQ发送的性能,单topic最高峰值可支持3~8万的rps,接近数量级上的性能提升 #2258 文档可参考:Canal-MQ-Performance ...MQ消息发送(比如Kafka/RocketMQ),修复线程池

    kafka-2.12-3.3.2.tgz

    **Kafka概述** Kafka是由LinkedIn开发并贡献给Apache软件基金会的一个开源分布式消息系统,它最初设计的目标是处理海量实时数据。Kafka以其高吞吐量、低延迟、持久化和可扩展性著称,使其成为大数据领域中的关键...

    kafka-api:Kafka的经纪人

    get /v1/kafka/clusters get /v1/kafka/topics/:topic get /v1/kafka/topics get /v1/kafka/cluster/:cluster/credentials/:user get /v1/kafka/cluster/:cluster/acls get /v1/kafka/cluster/:cluster/schemas get ...

    Linux系统中安装Kafka步骤

    /path/to/kafka/bin/zookeeper-server-start.sh /path/to/kafka/config/zookeeper.properties & sleep 3 # 启动Kafka /path/to/kafka/bin/kafka-server-start.sh /path/to/kafka/config/server.properties & ``` ...

    消息中间件kafka与activemq、rabbitmq、zeromq、rocketmq的比较

    #### Kafka与Activemq、Rabbitmq、ZeroMq、Rocketmq的比较 在现代分布式系统中,消息中间件(Message Queue, MQ)扮演着至关重要的角色,它们用于在分布式组件之间传输消息,帮助解决网络延迟、组件故障等问题,...

    kafka-0.8.1.1-src.tgz

    4. **Topic与Partition**: 主题和分区的管理在`src/java/kafka/topic`和`src/java/kafka/partition`中实现,`AdminUtils`类提供了创建、删除和更改主题的接口,`Partition`类则封装了分区的逻辑。 三、关键概念解析...

    KafKa安装使用手册.docx

    /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties & 二、KafkaManager 安装 KafkaManager 是一个基于 Web 的 Kafka 集群管理工具,提供了简单的界面来管理 Kafka 集群。 1...

Global site tag (gtag.js) - Google Analytics