消息中间件Kafka

消息中间件Kafka

今天来讲讲消息中间件Kafka,一般面试都会问到

Kafka
Kafka只支持集群部署,运行在一台或多台服务器上面。Kafka通过topic对存储的数据进行分类,每条记录中包含一个key,一个value和一个timestamp时间戳。

Kafka常用的名词
Broker:kafka节点,一个kafka节点就是一个broker,多个broker可以组成一个kafka集群。

Topic:消息存放的目录即主题,例如page view日志,click日志等都可以以topic的形式存在,Kafka集群能够同时负责多个topic的分发。

Massage:Kafka中最基本的传递对象。

Partition(分区):topic物理上的分区,一个topic可以分为多个分区,每个分区是一个有序的队列,每个分区都会在服务器上备份,确保容错性。

Segment:partition物理上由多个segment组成,每个Segment存着message信息。

Producer:生产者,生产message发送到topic。

Consumer:消费者,订阅topic并消费message,consumer作为一个线程来消费。

Consumer Group:消费者组,一个Consumer Group 包含多个Consumer。

Offset:偏移量,表示消息在分区中的唯一ID.

Kafka原理
Kafka的一个topic可以拥有一个或者多个消费者来订阅它的数据,对于每个topic,kafka的集群都会维护一个分区日志。
每个分区都是有序且顺序不可变的记录着,Kafka会保留所有的发布记录到commit.log文件,无论他们是否已被消费(可通过参数配置保留时间),kafka的性能和数据的大小无关,分区中的每一条记录都会分配一个ID号来维护顺序,我们称为offset.
offset由消费者控制,消费者可以采取任何顺序来消费记录,也就是说,消费者可以将offset重置到过去的一个位置,从而从新处理过去的数据,也可以跳过最近的记录,从现在开始消费。
每个分区都会有一台server作为leader,0台或多台server作为"follwers",leader处理所有的读写请求,而follwer只会被动的同步leader上的数据,当leader宕机后,follwer自动会进行选主,每一台server都有可能成为某些分区的leader同时又是某些分区的follwer,因此集群是负载均衡的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值