我的大数据学习之路-初识Kafka

年初我加入了大数据团队,对大数据一无所知的我,为了尽快融入大家,只能硬着头皮学起来,下面是我学的kafka入门知识,先总结下来,慢慢积累吧。

Kafka基本原理:

kafka是一个分布式的分区的多副本的消息发布订阅系统,它具有消息持久,高吞吐,分布式,多客户端支持,实时等特性,适用于离线和在线的消息消费,如常规的消息收集,网站活跃性跟踪,聚合统计系统运营数据,日志收集等大量数据的互联网的数据收集场景。

kafka结构



Kafka 内部消息传递流程:

消费者使用一个消费者组名称(Consumer Group)来标记自己,主题的每个消息被传递给每个订阅消费者组中的一个消费者。如果所有的消费者实例都属于同样的消费组,它们就像传统队列负载均衡方式工作,如上图,Consumer_Greoup_B中的C1和C2之间为负载均衡方式;ConsumerC_Group_C中的C1,C2,C3为负载均衡方式,如果消费者实例都不属于一个消费组,如上图中Consumer_GroupA中的C1和Consumer_GroupB中的C1之间,则消息会被广播给所有的消费者。

操作步骤:

使用kafka-acls.sh进行用户授权命令:

查看某topic权限控制:./kafka-acls.sh —authorizer-properties zookeeper.connect=<(zookeeper集群业务IP:端口号)/kafka> --list --topic <topic name>

添加某用户producer权限:./kafka-acls.sh —authorizer-properties zookeeper.connect=<(zookeeper集群业务IP:端口号)/kafka> —add —allow-principal User:<用户名> —producer —topic <topic name>

删除某用户producer权限:./kafka-acls.sh —authorizer-properties zookeeper.connect=<(zookeeper集群业务IP:端口号)/kafka> —remove —allow-principal User:<用户名> —producer —topic <topic name>

使用kafka客户端命令:

kafka消息读取:./kafka-console-consumer.sh  —bootstrap-server 187.7.61.100:端口号 —topic <topic name> —consumer.config=config/consumer.properties

kafka消息发布:./kafka-console-producer.sh —broker-list 187.7.61.100:端口号 —topic <topic name> —producer.config=config/producer.properties

管理kafka主题命令:

创建主题:./kafka-topic.sh —create —topic <topic name> —partitions <主题占用的分区数> —replication-factor <主题的备份数> —zookeeper zookeeper集群业务IP:端口号/kafka

list主题:./kafka-topic.sh —list —zookeeper zookeeper集群业务IP:端口号/kafka

删除主题:./kafka-topic.sh —delete —topic <topic name> —zookeeper zookeeper集群业务IP:端口号/kafka

topic限流:

    producer限流:bin/kafka-configs.sh --zookeeper X.X.X.X :port/kafka --alter --add-cnfig                                                            'producer_byte_rate=1048576' --entity-type topics --entity-name topicname

    consumer限流:bin/kafka-configs.sh --zookeeper X.X.X.X :port/kafka --alter --add-cnfig                                                            'consumer_byte_rate=1048576' --entity-type topics --entity-name topicname

user+topic 限流:

    producer限流:bin/kafka-configs.sh --zookeeper X.X.X.X :port/kafka --alter --add-cnfig                              'producer_byte_rate=1048576' --entity-type topics --entity-name topicname --entity-type users --entity-name username

    consumer限流:bin/kafka-configs.sh --zookeeper X.X.X.X :port/kafka --alter --add-cnfig                              'consumer_byte_rate=1048576' --entity-type topics --entity-name topicname --entity-type users --entity-name username

Kafka自带的性能测试脚本:

Kafka自带的性能测试脚本

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文转载自http://dataunion.org/?p=9307 背景介绍Kafka简介Kafka是一种分布式的...
    Bottle丶Fish阅读 5,519评论 0 34
  • 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O...
    高广超阅读 12,926评论 8 167
  • 大致可以通过上述情况进行排除 1.kafka服务器问题 查看日志是否有报错,网络访问问题等。 2. kafka p...
    生活的探路者阅读 7,676评论 0 10
  • kafka的定义:是一个分布式消息系统,由LinkedIn使用Scala编写,用作LinkedIn的活动流(Act...
    时待吾阅读 5,395评论 1 15
  • 一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独...
    ITsupuerlady阅读 1,676评论 0 9