zoukankan      html  css  js  c++  java
  • Kafka学习(一)配置及简单命令使用

    一. Kafka中的相关概念的介绍


    Kafka是一个scala实现的分布式消息中间件,当中涉及到的相关概念例如以下:

    • Kafka中传递的内容称为message(消息),message 是通过topic(话题)进行分组的 topic 和message 的关系是一对多的关系
    • 我们称公布message的进程为producer ,就是说producer生成<topic->message>对然后 丢进kafka集群
    • 相相应的称订阅topic处理相应message的进程为consumer
    • Kafka集群中的节点被称为broker 

    二. Kafka中的关键參数的配置


    Broker(集群总的节点)配置

    broker.id : 唯一确定的一个int 类型数字
    log.dirs :存储kafka数据,默认路径 为/tmp/kafka-logs
    port:comsumer连接的端口号
    zookeeper.conect: zookeeper的链接字符串,定义的格式例如以下 hostname1:port1,hostname2:port2,hostname3

    num.partitions : 一个topic能够被分成多个paritions 管道,每一个partiions中的message有序可是多个paritions中的顺序不能保证

    2.Consumer 配置

    group.id :string 类型 标志consumer隶属的consumer process 组
    zookeeper.connect: hostname1:port1,hostname2:port2(/chroot/path 统一数据存储路径)
    zookeeper 中存储了kafka的comsumers和brokers(包含topic和partition)的基本信息

    3.Producer配置
    metadata.book.list :host1:port1,host2:port2
    request.required.acks: 0.数据完毕就直接提交(可能在server崩溃了的时候丢失数据)
                                            1.wait until the server acknowledges the request as successful
                                            -1.no messages lost
    producer.type : 确定messages是否同步提交 sync
    serializer.class :kafka.serializer.DefaultEncoder  message 的序列化类,默认编码器处理类型都是byte[]类型

    三.Kafka的简单命令



    Step 1: 启动server


    首先启动zookeeper

    > bin/zookeeper-server-start.sh config/zookeeper.properties
    (远程启动的时候须要在后面加上一个 & 作为后台进程,然后断开和远程的链接)
    接着启动kafkaserver

    > bin/kafka-server-start.sh config/server.properties
    
    

    Step 2: 创建 一个 topic


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

    查看topic
    > bin/kafka-topics.sh --list --zookeeper localhost:2181
    

    Step 3: Send some messages


    > bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
    This is a message
    This is another message

    Step 4: 启动一个client(消费者)


    > bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
  • 相关阅读:
    未能从程序集 C:Program Files (x86)MSBuild14.0inMicrosoft.Data.Entity.Build.Tasks.dll 加载任务“EntityClean”
    asp.net mvc 4 项目升级到 asp.net mvc5
    SQL Server查看所有表大小,所占空间
    0x80072f8a未指定的错误
    vs2012 aps.net4.0/4.5尚未在web服务器上注册
    vsphere 出现“在主机的当前连接状况下不允许执行该操作”
    sql server 发布时提示'dbo.sysmergepublications'无效的解决办法
    sql server更改机器名后更改数据库机器名
    Ajax向后台传入File类型参数
    上传下载Azure Blob里的Excel文件。
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5152303.html
Copyright © 2011-2022 走看看