kafka及生产者消费者模型

  1. kafka是什么?
  •         kafka又称为消息中间件:消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
  • 消息中间件的作用:
    • 业务的解耦
    • 日志的收集
    • 流量削峰
    • 事务最终一致性
  • 消息队列:
    • 消息和队列,一种消费者生产者模型
    • 一个典型意义上的消息队列至少需要包含消息的生产者(filebeat)、中间件(kafka)、消费者(python程序)
    • 消息队列的通信模式
      • 点对点模式
      • 发布订阅模式
  • 集群:
    • 高可用:提高系统可用性,一台坏了,还有其他的可以用
    • 负载均衡:平衡机器压力
  • kafka的优点:
    • 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,他的延迟最低 只有几毫秒
    • 可扩展性:kafka集群支持热扩展
    • 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份放至数据丢失
    • 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败
    • 高并发:支持数千个客户端同时读写
  • Producer:Producer即生产者,消息的产生者,是消息的入口
  • Broker:是kafka的实例,每个服务器上有一个或多个kafka的实例,我们姑且认为每个broker对应一台服务器。 每个kaka集群内的broker都有一 个不重复的编号,如图中的broker-0,broker-1等...
  • Topic:消息的主题,每个topic可以有多个分区,, kafka的数据就保存在topic. 在每个broker,上都可以创建多个topic。
  • Partition:Topic的分区,每个Topic可以有多个分区。分区的作用是做负载,提高kafka的吞吐量。同一个topic在不同的分区的数据是不重复的, parttion的表现形式就是一个一个的文件夹!
  • Replication每一 个分区都有多个副本,副本的作用是做备胎。当主分区( Leader )故障的时候会选择一个备胎(Follower工位,成为Leader,在kafka中默认副本的最大数量是10个,且副本的数量不能大于Broker的数量, follower和leader绝对是在不同的机器,同一机器对同一个分区也只可能存放一个副本 (包括自己)。
  • Message:每一条发送的消息主体。
  • Consumer :消费者,即消息的消费方,是消息的出口。
  • Consumer Group我们可以将多个消费组组成一个消费者组 ,在kafka的设计中同-一个分区的数据只能被消费者组中的某一个消费者消费。 同一个消费者组的消费者可以消费同一个topic的不同分区的数据,这也是为了提高kafka的吞吐量!
  • Zookeeper : kafka集群依赖zookeeper来保存集群的的元信息,来保证系统的可用性。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值