zoukankan      html  css  js  c++  java
  • 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
    以上就启动完成
  • 相关阅读:
    C#基础小整理2
    面向过程之骑士飞行棋
    Winform基础程序和ADO.NET基础
    深刻的理解面向对象
    xargs 命令
    用 Graphviz + CodeViz可视化函数调用
    gdb调试器命令学习总结笔记 stl printer
    iconv 文件编码转换
    python urllib编码
    gcc g++ 参数
  • 原文地址:https://www.cnblogs.com/1111zhiping-tian/p/8446465.html
Copyright © 2011-2022 走看看