Kafka

Kafka

概念

  • 1.分布式的 消息队列

  • 2.可分区 可复制

  • 3.具有类似于JMS的特性

    • JMS是java提供的消息队列的规范
  • 4.依赖zookeeper协调集群信息

  • 5.topic、broker、producer、consumer

优点

  • 1.高吞吐量

  • 2.持久化数据存储

    • 不用内存缓存数据 直接写入磁盘

      • 1.平时磁盘读写慢 是因为读的小文件多 寻址时间长
      • 2.Kafka按顺序连续读写,充分发挥了磁盘的性能,速度并不慢
      • 3.与此同时不必再担心内存数据的丢失
  • 3.分布式易于扩展

    • producer、consumer、broker均可以设置多个,无需停机即可扩展机器
  • 4.客户端状态维护

    • 消息被处理的状态在consumer被维护 而不是由server端维护

      • consumer端直接告诉server端从哪里开始读取,这样server端不必提供性能来处理会话管理相关的事务

Topic

  • 将一组消息归纳的单位

  • 多个项目使用同一个kafka集群,为了区分不同的项目,使用各自的topic

  • 每个topic,进行分区

    • 每个分区在集群内有多个副本

      • 为了负载均衡 失败恢复
    • 每个分区具有一个leader,该分区其他副本所在服务器为flower

      • leader负载读和写 flower负责读 并复制leader信息
  • 每个分区由有序的消息组成,并且消息会被连续追加,每个消息都有唯一标识

  • 在配置时间内 无论消息是否被消费 都会被保留

    • 为了保证磁盘连续读写的性能,所以不会删除
    • 因此kafka允许读取之前读取过的内容
    • 配置时间过后 消息被删除

Producer

  • 将消息发送到topic中
  • 负责决定发送到哪个分区

Consumer

  • 唯一需要维护的是数据在日志中读取的位置,以便到server中找到要读取的消息

  • 模式

    • 队列模式

      • 消费者竞争数据
    • 发布-订阅模式

      • 消费者共享数据
    • 消费者组

      • 组外共享 组内竞争
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值