Kafka入门1——基本概念

引言

        在高并发的应用场景中,由于来不及同步处理请求,接收到的请求往往会发生阻塞。例如,大量的插入、更新请求同时到达数据库,会导致行或表被锁住,最后会因为请求堆积过多而触发“连接数过多异常”错误。

        因此,在高并发的应用场景中需要一个缓冲机制,而消息队列则可以很好地充当这样的角色。消息队列通过异步处理请求来缓解系统的压力。

一:Kafka简介

        Kafka是一个分布式实时数据流平台,可以独立部署在单台服务器上,也可以部署在多台服务器上构成集群。它提供了发布与订阅功能。用户可以发送数据到Kafka集群中,也可以从Kafka集群中读取数据。

二:Kafka核心概念

1.Broker(代理)

        在Kafka集群中,一个Kafka进程被称为一个Broker节点,通常一台服务器上部署一个Kafka进程。

2.Producer(生产者)

        生产者将消息记录发送到Kafka集群指定的主题(Topic)中进行存储,同时生产者也能通过自定义算法决定将消息记录发送到哪个分区(Partition)。

3.Consumer(消费者)

        消费者从Kafka集群指定的主题(Topic)中读取消息记录。在读取主题数据时,需要设置消费组名(GroupId)。如果不设置,则Kafka消费者会默认生成一个消费者名称。

4.Consumer Group(消费者组)

        消费者程序在读取Kafka系统主题(Topic)中的数据时,通常会使用多个线程来执行。一个消费者组可以包含一个或多个消费者程序,使用多分区和多线程模式可以极大提高读取数据的效率。

5.Topic(主题)

        Kafka系统通过主题来区分不同业务类型的消息记录。用户只能消费到订阅的主题中的数据。

6.Partition(分区)

        每一个主题中可以有一个或多个分区。Kafka中不同的分区对应着不同的数据问题,并且一个分区只对应一个Broker。Kafka通过分区来支持物理层面上的并发读写,以提高Kafka集群的吞吐量。每个分区内部的消息记录是有序的,每个消息都有一个连续的偏移量序号(Offset)。

7.Replication(副本)

        Kafka中每个主题创建时都会要求指定它的副本数,通过副本机制来保证Kafka分布式集群数据的高可用。

        一般情况下,若集群数量大于等于3,则主题的副本数可以设置为3,若集群数量小于3,则副本数可以设置为小于等于集群数量的值。

8.Record(记录)

        被实际写入到Kafka集群并且可以被消费者应用程序读取的数据,被称为记录。每条记录包含一个键,值和时间戳。

三:Kafka常用命令

1.创建主题

        创建一个副本数为3,分区数为6,主题名为nicedj的kafka主题

  kafka-topics.sh --create -zookeeper broker1:2181,broker2:2181,broker3:2181 --replication-factor 3 --partitions 6 --topic nicedj

2.查看主题

  kafka-topics.sh --describe -zookeeper broker1:2181,broker2:2181,broker3:2181 --topic nicedj

3.删除主题

  kafka-topics.sh -zookeeper broker1:2181,broker2:2181,broker3:2181 -delete --topic nicedj

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值