kafka的学习

Posted 小王同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka的学习相关的知识,希望对你有一定的参考价值。

写在最前面,先简单讲解一些kafka的概念:

一、概念
1.1 kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。
Broker
kafka集群包含一个或者多个服务器,这种服务器被称为broker
Topic
每条发布到kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生成或消费数据而不必关心数据存于何处)
partition
partition是物理上的概念,每个topic包含一个或多个partition
producer
负责发布消息到kafka broker读取消息的客户端
consumer group
每个consumer属于一个特定consumer group(可为每个consumer指定group name,若不指定group name则属于默认的group)

1.2 zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop的Hbase的重要组件。他是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护,域名服务,分布式同步,组服务等。
zookeeper的基本运转流程
1、选举leader
2、同步数据
3、选举leader过程中算法有很多,但要达到的选举标准是一致的。
4、leader要具有最高的执行ID,类似root权限
5、集群中大多数的机器得到响应并follow选出的leader
1.3 kafka-manager为了简化开发者和服务工程师维护kafka集群的工作,yahoo构建了一个叫做kafka管理器的基于web工具,叫做kafaka manager。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的情况。他支持管理多个集群、选择副本、副本重新分配以及关键Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:
1、管理多个kafka集群
2、便捷的检查kafka集群状态(topic,brokers,备份分布情况,分区分布情况)
3、选择你要运行的副本
4、基于当前分区状况进行

二、部署安装zookeeper

zookeeper的安装:
下载地址:http://www-us.apache.org/dist/zookeeper/zookeeper-3.4.11/
cd /usr/local
tar -zxvf zookeeper-3.4.11.tar.gz
cd zookeeper-3.4.11
mkdir data
cd conf/
vim zoo.cfg
    tickTime=2000
    #dataDir=/path/to/zookeeper/data
    dataDir=/usr/local/zookeeper-3.4.11/data
    clientPort=2181
    initLimit=5
    syncLimit=2
bin/zkServer.sh start   #启动zk

三、部署安装kafka并启动多broker:

下载地址;http://www-eu.apache.org/dist/kafka/0.11.0.2/
cd /usr/local
tar -zxvf kafka_2.11-0.11.0.2.tgz
cd kafka_2.11-0.11.0.2
cd config/
vim server.properties(只需要做修改)

    broker.id=0
    listeners=PLAINTEXT://0.0.0.0:9092 
    num.network.threads=3
    num.io.threads=8
    socket.send.buffer.bytes=102400
    socket.receive.buffer.bytes=102400
    socket.request.max.bytes=104857600
    log.dirs=/tmp/kafka-logs
    num.partitions=1
    num.recovery.threads.per.data.dir=1
    offsets.topic.replication.factor=1
    transaction.state.log.replication.factor=1
    transaction.state.log.min.isr=1
    log.retention.hours=168
    log.segment.bytes=1073741824
    log.retention.check.interval.ms=300000
    zookeeper.connect=localhost:2181
    zookeeper.connection.timeout.ms=6000
    group.initial.rebalance.delay.ms=0

bin/kafka-server-start.sh config/server.properties   #启动kafka broker
jps   #这是我启动了三个kafka的效果
    14725 Kafka
    9720 QuorumPeerMain
    28795 Bootstrap
    14396 Kafka
    19871 Jps
    10351 Kafka
以上就启动完成

 

以上是关于kafka的学习的主要内容,如果未能解决你的问题,请参考以下文章

Kafka-文件管理

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

学习 PyQt5。在我的代码片段中找不到错误 [关闭]

学习笔记:python3,代码片段(2017)