Kafka为什么不提供像 MySQL 那样允许副本对外提供读服务?

Time:2019-11-4
Author:striVEWANG
Site:科兴科学院

Kafka为什么不提供像 MySQL 那样允许副本对外提供读服务?

原因一:读数据压力方面:

  • Kafka 的 Partition 分布在多个broker,当 Comsuer 消费数据的Partiton
    是被分配到不同的Broker上,已经是负载均衡之后的请求。

  • Mysql读写数据都在主DB上,主DB请求压力太大,所以需要读写分离进行负载均衡。

原因二:数据一致性问题:

  • Kafka 的副本机制是异步消息拉取,因此就存在 Leader 和 Follwer 之间的不一致性。并且Kafka
    保存的数据具有消费的概念,是流数据,具有严格的顺序要求,所以消费需要 Offset。如果从Kafka
    的多个Follwer进行读,Offset无法保证正确性。

  • Mysql
    主从数据同步在处理得当的情况下,在读数据的情况下是很少感受不到主从数据不一致。

原因三:应用场景:

  • Mysql在针对就是读频繁,写较少的的场景下,所以采用读写分离是很不错的方案。

  • Kafka
    的使用场景更多情况是消息引擎而不是作为数据存储对外提供读服务,通常涉及到频繁的生产消息和消费消息,不属于读多写少的场景,因此读写分离不适用这个Kafka。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值