这篇文章主要介绍“分布式消息队列Kafka的基本概念和常用命令”,在日常操作中,相信很多人在分布式消息队列Kafka的基本概念和常用命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分布式消息队列Kafka的基本概念和常用命令”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
基本概念
主题:好比数据库表,或者系统中文件夹
分区:一个主题可以分若干分区,同一个分区内可以保证有序
偏移量:一个不断递增的整数值,每个分区的偏移量是唯一的
broker:一个独立的kafka服务器
MirrorMaker工具:多集群间消息复制
Zookeeper:保存集群元数据和消费者信息,broker和主题元数据、消费者元数据分区偏移量
硬件选择
磁盘吞吐量、磁盘容量、内存、网络、CPU
生产者(KafkaProducer)
序列化:自定义序列化、Avro
分区:ProducerRecord对象包含了目标主题、键和值,
键有两个作用:可以作为消息的附加信息,也可以用来决定消息改写到主题的那个分区,拥有相当键的消息会被写到同一个分区。
消费者(KafkaConsumer)
消费者和消费者群组
kafka构建数据管道:数据段之间的大型缓存区
kafka是一个强大的消息总线,可以传递事件流,但是没有处理和转换事件的能力,kafka的可靠的传递能力让它成为流式处理系统的完美数据来源
flume是分布式的日志收集系统,它将各个服务器中的数据收集起来并送到指定的地方去
日志输出到flume,log4j里加上日志
业界比较典型的一中用法是:
线上数据 -> flume -> kafka -> hdfs -> MR离线计算 或者:
线上数据 -> flume -> kafka -> storm
简单点概括 flume类似于管道,kafka类似于消息队列。之所以题主觉得类似大概是因为都能用于数据传输
Flume和Kafka应该结合来使用,Flume作为日志收集端,Kafka作为日志消费端。
Flume的Source-Channel-Sink模型,非常适合作为日志收集的模型
kafka常用命令:
创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
展示topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
描述topic
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
生产者:
bin/kafka-console-producer.sh --broker-list 130.51.23.95:9092 --topic my-replicated-topic
消费者:
bin/kafka-console-consumer.sh --zookeeper 130.51.23.95:2181 --topic test --from-beginnin
到此,关于“分布式消息队列Kafka的基本概念和常用命令”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。