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

2019-01-31  本文已影响0人  苟思玉

年初我加入了大数据团队,对大数据一无所知的我,为了尽快融入大家,只能硬着头皮学起来,下面是我学的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自带的性能测试脚本

上一篇下一篇

猜你喜欢

热点阅读