美文网首页
Kafka探索笔记

Kafka探索笔记

作者: AceCream佳 | 来源:发表于2019-02-12 11:00 被阅读0次

    1.kafka是啥?

    A distributed streaming platform
    -- kafka官网

    翻译翻译,说kafka是 分布式流媒体平台,流媒体平台有三个关键功能:

    • 发布和订阅记录流,类似于消息队列或企业消息传递系统。(消息队列)
    • 以容错的持久方式存储记录流。(持久化)
    • 处理发生的记录流。(流处理)

    2.配置

    主要有两个文件需要安排:server.properties 和 zookeeper.properties
    要先修改一下日志的目录,因为默认是在tmp目录下,tmp目录里的内容会丢失,具体原因是重启后内容会被删除。
    server.properties:

    原本: log.dirs=/tmp/kafka-logs 
    修改为:log.dirs=自定义目录
    

    zookeeper.properties:

    原本: dataDir=/tmp/zookeeper 
    修改为:dataDir=/usr/local/zookeeper/data
    

    上述是kafka自带的配置文件,我们也可以通过配置server.properties去指定使用其他服务器上的zookeeper
    但是!!!
    server.properties中有一个关于zookeeper的部分

    ############################ Zookeeper ############################## 
    Zookeeper connection string (see zookeeper docs for details).
    # This is a comma separated host:port pairs, each corresponding to a zk
    # server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
    # You can also append an optional chroot string to the urls to specify the
    # root directory for all kafka znodes.zookeeper.connect=zookeeper所在的ip地址:端口(默认2181)
    # Timeout in ms for connecting to zookeeperzookeeper.connection.timeout.ms=6000
    

    3.启动

    设置好的话,就不需要去启动kafka自带的zk了。

    这里说一下如果其他没有配置
    需要先启动自带的zookeeper
    位置是 : bin/zookeeper-server-start.sh config/zookeeper.properties

    这里注意一点!kafka生命周期里必须要有zookeep的存在!!!
    kafka开启前,要先开启zk
    kafka关闭后,才允许关闭zk

    kafka启动命令:

    bin/kafka-server-start.sh config/server.properties 1>/dev/null  2>&1  &
    

    解释一下:
    1>/dev/null 2>&1 是将命令产生的输入和错误都输入到空设备,不输出到控制台 其中/dev/null 是空设备。

    这样就打开了kafka,接下来可以 用flume去搭配使用kafka了,具体是修改flume的配置文件。
    当然我们可以给kafka开启主题Topic,具体类似RabbitMQ里面设定路由规则。
    比如说:

    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
    

    上面这句就开启了一个test主题。我们可以向主题发送消息!

    4.发送消息

    启动一个生产者!这里可以说一下,kafka自带一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送到Kafka集群。默认情况下,每行将作为单独的消息发送。
    首先启动生产者:

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    

    然后发送一些信息:

    > hello world
    > hello???hello?!Oh!!!Fine~
    

    5.接受消息

    启动一个消费者:

    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
    

    这样就可以直接接到信息了!

    相关文章

      网友评论

          本文标题:Kafka探索笔记

          本文链接:https://www.haomeiwen.com/subject/dqmheqtx.html