Kafka组件
Kafka中发布订阅的对象是topic。
我们可以为每类数据创建一个topic,把向topic发布消息的客户端称作producer,从topic订阅消息的客户端称作consumer。
Producers和consumers可以同时从多个topic读写数据。一个kafka集群由一个或多个broker服务器组成,它负责持久化和备份具体的kafka消息。
- topic:消息存放的目录即主题
- Producer:生产消息到topic的一方
- Consumer:订阅topic消费消息的一方
- Broker:Kafka的服务实例就是一个broker
Kafka的特性
- 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒
- 可扩展性:kafka集群支持热扩展
- 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
- 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
- 高并发:支持数千个客户端同时读写
准备安装包:kafka_2.11-0.8.2.1.tgz,可以在官网下载http://kafka.apache.org/
上传解压(过程简单就不用提了)
配置环境
找到安装好之后的config目录下的server.properties文件,复制3份,文件名分别是:server9092.properties,server9093.properties,server9094.properties,我这里以server9092.properties的文件说明需要配置的环境
配置唯一标识符
broker.id=9092
配置Broker端口
port=9092
配置Broker运行主机名称
host.name=(自己的主机名称)
配置日志文件存储目录
log.dirs=/opt/modules/kafka_2.11-0.8.2.1/kafkaDatas/data9092
需要在kafka安装目录下创建目录kafkaDatas/data9092
配置ZK地址以及存储ZNode根目录
zookeeper.connect=(自己的主机名称):2181/kafka
其他两个配置文件模仿这个就可以了
启动服务
需要先动Zookeeper
启动kafka进程
bin/kafka-server-start.sh -daemon config/server9092.properties
bin/kafka-server-start.sh -daemon config/server9093.properties
bin/kafka-server-start.sh -daemon config/server9094.properties
创建topic
bin/kafka-topics.sh --create --zookeeper bigdata-hpsk01.huadian.com/kafka --replication-factor 2 --partitions 3 --topic testTopic
--replication-factor:副本数 ,需要<Brokers 数量
--partitions:分区数
查看Kafka Cluster中有多少topic
bin/kafka-topics.sh --list --zookeeper bigdata-hpsk01.huadian.com/kafka
模拟生产者发送数据到Topic中
bin/kafka-console-producer.sh --broker-list bigdata-hpsk01.huadian.com:9092,bigdata-hpsk01.huadian.com:9093,bigdata-hpsk01.huadian.com:9094 --topic testTopic
模拟消费者消费Topic中数据
bin/kafka-console-consumer.sh --zookeeper bigdata-hpsk01.huadian.com/kafka --topic testTopic --from-beginning