kafka安装配置

  •     Kafka主要构成:
    html

    

    一、Broker:集群中的每个对应的服务器被称之为broker。java

    二、Topic 用于区别消息的类别,每一个topic中包含多个Partition;Partition主要能够减小每一个日志的数据量,也能够增长请求的并发量。shell

    三、Producer 消息的生产者,可经过配置partitioner.class设置消息发送到那个Partition上。apache

    四、Consumer 消息的消费者,能够订阅须要的topics。
bootstrap

    其中更多的其余术语能够参考kafka官方文档服务器


  •     Kafka配置:经过官网下载并安装,经过文件config下的相关properties进行配置;并发

    

     server.properties启动服务时的相关配置,可拷贝多个配置多个broker服务(单台服务器上配置多个broker服务的方式),如server-1.propertiesapp

    console-xxxx.properties启动相关控制台的配置。dom

    一、server.properties配置文件,启动命令async

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


# broker_id,集群环境下不能重复
broker.id=0
# broker 开放的端口
port=9092
# broker 绑定的主机名
host.name=localhost

# producers、consumers链接的地址. 若没配置,则使用host.name
# 可是在编码过程当中发现如不配置这项的话,系统没法启动,比较费解
advertised.host.name=192.168.52.128
 
# 同advertised.host.name相似
#advertised.port=<port accessible by clients>

#存放消息文件的目录
log.dirs=/tmp/kafka-logs
#topic默认的分区数量,数量多少能够影响并发量
num.partitions=1

##zookeeper的配置
zookeeper.connect=192.168.52.128:2181

# Timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=6000

   其它配置属性可参考server内部自行配置。

    二、producer.properties配置文件

# list of brokers used for bootstrapping knowledge about the rest of the cluster
# format: host1:port1,host2:port2 ...
# 配置broker节点数据信息,用于获取元数据信息
metadata.broker.list=192.168.52.128:9092

# name of the partitioner class for partitioning events; default partition spreads data randomly
# 消息发送到那个分区的配置,默认使用org.apache.kafka.clients.producer.internals.DefaultPartitioner
#partitioner.class=

# specifies whether the messages are sent asynchronously (async) or synchronously (sync)
producer.type=sync

# specify the compression codec for all data generated: none, gzip, snappy, lz4.
# the old config values work as well: 0, 1, 2, 3 for none, gzip, snappy, lz4, respectively
compression.codec=none

# message encoder
serializer.class=kafka.serializer.DefaultEncoder
# allow topic level compression
# 压缩方式
#compressed.topics=

    三、consumer.properties配置文件v

# Zookeeper connection string
# 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"
# 监控的zookeeper连接,消费者主要经过zookeeper获取数据
zookeeper.connect=192.168.52.128:2181

# timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=6000

#consumer group id
#消费者分组信息,每一个消息只能被分组中的某个消费者消费
group.id=test-consumer-group

#consumer timeout
#consumer.timeout.ms=5000

    四、connect-xxxx.properties配置文件主要对kafka 0.9的新版特性的相关配置,connect能够对大数据量的源数据拷贝到目标系统中。

       connect-standalone.properties和connect-distributed.properties两个为单机和分布式下的connect启动配置文件,配置详细信息可见具体文件。其启动命令:

bin/connect-distributed.sh config/connect-distributed.properties

     connect-file-source.properties配置源系统的connector:

#connector惟一的名称
name=local-console-source
#connector的实现
connector.class=org.apache.kafka.connect.file.FileStreamSourceConnector
#connector须要建立的最大任务数
tasks.max=1
#须要处理的topic类别
topic=connect-test

    connect-file-sink.properties配置目标系统的connector(和以上配置相似):   

name=local-file-sink
connector.class=org.apache.kafka.connect.file.FileStreamSinkConnector
tasks.max=1
file=test.sink.txt
#接收topic类别列表
topics=connect-test
  •     kafka相关命令

    一、topic相关命令

#建立topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic mykafka

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

    二、producer发送消息

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

    三、customer消费消息

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic mykafka --from-beginning

    以上是对kafka简单的配置及命令操做。

  •     Kafka的优缺点:

    kafka相较于其余mq而言,消费者采用主动poll的模式,poll模式有利于customer根据自身处理能力获取数据。

    kafka的容错性,kafka提供对partitioner的备份到其余broker服务器上;若有服务器挂掉,则zookeeper会从新选择leader处理消息信息。

    配置多个partitioner可提升并发,但不能保证消息的顺序性;若要保证消息的顺序,则只需配置一个分区便可。

    不支持消息的事务性,消息发送包括三种状况(可配置重试次数):

    一、最多只发送一次,消息有可能会丢失,但不会再重发。

    二、至少发送一次,消息不会丢失,但有可能会出现重复发送。

    三、保证消息会且仅会发送一次。

     更多的信息能够查看http://www.infoq.com/cn/articles/kafka-analysis-part-1或者

     官网文档http://kafka.apache.org/documentation.html

相关文章
相关标签/搜索