初步认识Kafka

为什么要使用消息系统

目的如下:

解耦

冗余:业务执行失败后,消息不会从队列中删除,直到被确认处理完毕。

扩展:因为解耦了处理过程,扩展增加消费节点,就很容易了。

削峰:突发流量不常遇到,关键时刻使用消息队列能顶住突发访问压力。

可恢复:和扩展相反,有消费节点挂了,也不会影响整个系统,恢复后正常处理。

顺序

异步:用户把消息放入队列,不立即处理,需要的时候在处理。

kafka基本组成

 Kafka集群有若干个Broker组成,Topic 由若干个Partition组成。

Broker可以认为一台Kafka服务器就是一个Broker,Broker之间没有主从的概念,他们之间是平等的。

topic用户只需指定消息的主题topic 即可生产或消费数据不需关系数据存放何处

partition 一个非常大的topic可以被分为多个partition,从而分布到多台Broker上。Partition中的每条消息都会被分配一个Offset。Kafka只保证按一个partition中的顺序将消息发给消费者,但是不保证单个topic中的多个Partition之间的顺序。

 Offset 消息在topic的Partition中的位置,同一个Partition中的消息随着消息的写入,其对应的Offset也自增。

replica副本。Topic的Partition含有N个Replica,N为副本因子。其中一个Replica为Leader,其他都为Follower,Leader处理Partition的所有读写请求,与此同时,Follower会定期地去同步Leader上的数据。

producer消息生产者,即将消息发布到指定的Topic中,同时Producer也能决定此消息所属的Partition:比如基于Round-Robin(轮询)方式或者Hash(哈希)方式等一些算法。

consumer消息消费者,即向指定的Topic获取消息,根据指定Topic的分区索引及其对应分区上的消息偏移量来获取消息。

consumer group 消费者组,每个Consumer属于一个Consumer Group;反过来,每个Consumer Group中可以包含多个Consumer。如果所有的Consumer都具有相同的Consumer Group,那么消息将会在Consumer之间进行负载均衡。也就是说一个Partition中的消息只会被相同Consumer Group中的某个Consumer消费,每个Consumer Group消息消费是相互独立的。如果所有的Consumer都具有不同的Consumer Group,则消息将会被广播给所有的Consumer。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天都要有成长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值