Kafka知识点

消息队列是J2EE技术中常用的中间件,需要了解常用的消息队列实现方案与优缺点

  • 消息模型
    • push推模型:代表程序RabbitMq
    • 需要考虑客户端的消费能力
    • 客户端增加receive buffer,防止OOM
    • 对于事务处理支持的好
    • 消息状态维护在服务端
    • 实时性较好
    • 对服务端性能要求较高
    • pull拉模型:Kafka
    • 无需考虑客户端的消费能力
    • 消息状态分别维护在客户端
    • 消费能力重点在于客户端
  • Kafka具体实现
    • Kafka的基本角色 broker,provider,consumer
    • 每个topic对应一个或者多个consumer group
    • 每个topic对应多个partition以及replication,每个partition之间不能保证消费顺序
    • 如何实现consumer的rebalance
    • 每个partiton有对应的replication,多个replication需要一个leader,写操作只针对leader,然后执行leader-follower复制,其备份策略可以选择同步备份以及异步备份,也可以选择半数同步返回或者全同步,效率不一样,不同数量的replication也会影响性能
    • 每个partition有对应的offset,对应有四个指针
      • Last Committed Offset:这是 group 最新一次 commit 的 offset,表示这个 group 已经把 Last Committed Offset 之前的数据都消费成功了;
      • Current Position:group 当前消费数据的 offset,也就是说,Last Committed Offset 到 Current Position 之间的数据已经拉取成功,可能正在处理,但是还未 commit;
      • Log End Offset:Producer 写入到 Kafka 中的最新一条数据的 offset;
      • High Watermark:已经成功备份到其他 replicas 中的最新一条数据的 offset,也就是说 Log End Offset 与 High Watermark 之间的数据已经写入到该 partition 的 leader 中,但是还未成功备份到其他的 replicas 中,这部分数据被认为是不安全的,是不允许 Consumer 消费的。
    • kafka的消息日志存储,索引结构
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值