zoukankan      html  css  js  c++  java
  • kafka搭建

    一 简介:

        Kafka 被称为下一代分布式消息系统,是非营利性组织ASF(Apache Software Foundation,简称为ASF)基金会中的一个开源项目,比如HTTP Server、Hadoop、ActiveMQ、Tomcat等开源软件都属于Apache基金会的开源软件,类似的消息系统还有RbbitMQ、ActiveMQ、ZeroMQ,最主要的优势是其具备分布式功能、并且结合zookeeper可以实现动态扩容。

    http://www.infoq.com/cn/articles/apache-kafka

    1.1.1:kafka下载地址:

    http://kafka.apache.org/downloads.html

    1.1.2:zookeeper 下载地址:

    http://zookeeper.apache.org/releases.html

    二 安装zookeeper

    2.1.1 zookeeper简介:

        

    zookeeper集群特性:整个集群种只要有超过集群数量一半的zookeeper工作只正常的,那么整个集群对外就是可用的,假如有2台服务器做了一个zookeeper集群,只要有任何一台故障或宕机,那么这个zookeeper集群就不可用了,因为剩下的一台没有超过集群一半的数量,但是假如有三台zookeeper组成一个集群,那么损坏一台就还剩两台,大于3台的一半,所以损坏一台还是可以正常运行的,但是再损坏一台就只剩一台集群就不可用了。那么要是4台组成一个zookeeper集群,损坏一台集群肯定是正常的,那么损坏两台就还剩两台,那么2台不大于集群数量的一半,所以3台的zookeeper集群和4台的zookeeper集群损坏两台的结果都是集群不可用,一次类推5台和6台以及7台和8台都是同理,所以这也就是为什么集群一般都是奇数的原因。

     2.1.1 安装

        #安装之前所有机器都要做host解析

    [root@Docker tools]# tar xf zookeeper-3.4.11.tar.gz 
    [root@Docker tools]# ln -s /tools/zookeeper-3.4.11 /tools/zookeeper
    [root@Docker tools]# cp /tools/zookeeper/conf/zoo_sample.cfg /tools/zookeeper/conf/zoo.cfg 
    [root@Docker tools]# mkdir /tools/zookeeper/data

    2.1.2 配置

    [root@Docker tools]# grep "^[a-Z]" /tools/zookeeper/conf/zoo.cfg 
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/tools/zookeeper/data
    clientPort=2181
    server.1=192.168.10.10:2888:3888
    server.2=192.168.10.167:2888:3888
    server.3=192.168.56.10.171:2888:3888
    
    只有myid不同其他配置均相同
    [root@Docker tools]# echo "1" > /tools/zookeeper/data/myid

    2.2.3 启动并验证

    [root@Docker tools]# /tools/zookeeper/bin/zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /tools/zookeeper/bin/../conf/zoo.cfg
    [root@Docker tools]# /tools/zookeeper/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /tools/zookeeper/bin/../conf/zoo.cfg
    Mode: follower
    
    
    [root@DNS-Server tools]# /tools/zookeeper/bin/zkServer.sh start
    ZooKeeper JMX enabled by default
    Using config: /tools/zookeeper/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    You have mail in /var/spool/mail/root
    [root@DNS-Server tools]# /tools/zookeeper/bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /tools/zookeeper/bin/../conf/zoo.cfg
    Mode: leader

     三 搭建kafka

    3.1.1 安装

     tar xvf kafka_2.11-1.0.0.tgz
     ln -sv /tools/kafka_2.11-1.0.0 /tools/kafka

    3.1.2 配置

    [root@Docker ~]# grep "^[a-Z]" /tools/kafka/config/server.properties 
    broker.id=1                                                         #id 唯一
    listeners=PLAINTEXT://192.168.10.10:9092      #填写本机IP
    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=24
    log.segment.bytes=1073741824
    log.retention.check.interval.ms=300000
    zookeeper.connect=192.168.10.10:2181,192.168.10.167:2181,192.168.10.171:2181                                              #填写所有zookeeper地址
    zookeeper.connection.timeout.ms=6000
    group.initial.rebalance.delay.ms=0

    3.1.3 启动并检查

    [root@Docker ~]# /tools/kafka/bin/kafka-server-start.sh -daemon /tools/kafka/config/server.properties 
    [root@Docker ~]# jps
    14034 Kafka
    10740 QuorumPeerMain
    27463 Main
    1208 Bootstrap
    7676 Jps
    8349 Elasticsearch

    3.1.4 测试创建topic

    #创建名为logstashtest,partitions(分区)为3,replication(复制)为3的topic(主题):

    #在任意kafaka服务器操作:

    [root@Docker ~]# /tools/kafka/bin/kafka-topics.sh --create  --zookeeper 192.168.10.10:2181,192.168.10.167:2181,192.168.10.171:2181 --partitions 3 --replication-factor 3 --topic logstashtest 
    Created topic "logstashtest".
    #获取topic
    #
    状态说明:logstashtest有三个分区分别为1、2、3,分区0的leader是3(broker.id),分区0有三个副本,并且状态都为lsr(ln-sync,表示可以参加选举成为leader)。
    [root@DNS-Server tools]# /tools/kafka/bin/kafka-topics.sh --describe  --zookeeper 192.168.10.10:21881,192.168.10.167:2181,192.168.10.171:2181 --topic logstashtest
    Topic:logstashtest    PartitionCount:3    ReplicationFactor:3    Configs:
        Topic: logstashtest    Partition: 0    Leader: 3    Replicas: 3,1,2    Isr: 3,1,2
        Topic: logstashtest    Partition: 1    Leader: 1    Replicas: 1,2,3    Isr: 1,2,3
        Topic: logstashtest    Partition: 2    Leader: 2    Replicas: 2,3,1    Isr: 2,3,1

    3.1.5 删除并检查

    [root@DNS-Server tools]# /tools/kafka/bin/kafka-topics.sh --delete  --zookeeper 192.168.10.10:2181,192.168.10.167:2181,192.168.10.171:2181 --topic logstashtest
    Topic logstashtest is marked for deletion.
    Note: This will have no impact if delete.topic.enable is not set to true.
    You have mail in /var/spool/mail/root
    [root@DNS-Server tools]# /tools/kafka/bin/kafka-topics.sh --describe  --zookeeper 192.168.10.10:2181,192.168.10.167:2181,192.168.10.171:2181 --topic logstashtest
    #获取多个主题

    [root@DNS-Server tools]# /tools/kafka/bin/kafka-topics.sh --list --zookeeper 192.168.10.10:2181,192.168.10.167:2181,192.168.10.171:2181

    作者:闫世成

    出处:http://cnblogs.com/yanshicheng

    联系:yans121@sina.com

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题或建议,请联系上述邮箱,非常感谢。
  • 相关阅读:
    《Java4Android视频教程》学习笔记(二)
    漫画
    MyEclipse启动时报 Unable to acquire application service. Ensure that the org.eclips
    linux下关闭桌面模式使用命令行模式及其它模式
    nginx 开启fastcgi 可支持php、python、perl等多种语言
    linux下安装ImageMagick和Imagick扩展
    nginx 平滑升级到Tengine并编译concat
    centos 安装详解
    for xml path group by
    泛型对象Lists转xml
  • 原文地址:https://www.cnblogs.com/yanshicheng/p/9438640.html
Copyright © 2011-2022 走看看