概述
问题导读
1.Kafka独特设计在什么地方?
2.Kafka如何搭建及创建topic、发送消息、消费消息?
3.如何书写Kafka程序?
4.数据传输的事务定义有哪三种?
5.Kafka判断一个节点是否活着有哪两个条件?
6.producer是否直接将数据发送到broker的leader(主节点)?
7.Kafa consumer是否可以消费指定分区消息?
8.Kafka消息是采用Pull模式,还是Push模式?
9.Procuder API有哪两种?
10.Kafka存储在硬盘上的消息格式是什么?
一、基本概念
介绍
这个独特的设计是什么样的呢?
Topics 和Logs
分布式
Producers
Consumers
相比传统的消息系统,Kafka可以很好的保证有序性。
传统的队列在服务器上保存有序的消息,如果多个consumers同时从这个服务器消费消息,服务器就会以消息存储的顺序向consumer分发消息。虽然服务器按顺序发布消息,但是消息是被异步的分发到各consumer上,所以当消息到达时可能已经失去了原来的顺序,这意味着并发消费将导致顺序错乱。为了避免故障,这样的消息系统通常使用“专用consumer”的概念,其实就是只允许一个消费者消费消息,当然这就意味着失去了并发性。
二、环境搭建
Step 1: 下载Kafka
- > tar -xzf kafka_2.9.2-0.8.1.1.tgz
- > cd kafka_2.9.2-0.8.1.1
Step 2: 启动服务
- > bin/zookeeper-server-start.sh config/zookeeper.properties &
- [2013-04-22 15:01:37,495] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
- ...
- > bin/kafka-server-start.sh config/server.properties
- [2013-04-22 15:01:47,028] INFO Verifying properties (kafka.utils.VerifiableProperties)
- [2013-04-22 15:01:47,051] INFO Property socket.send.buffer.bytes is overridden to 1048576 (kafka.utils.VerifiableProperties)
- ...
发表评论 取消回复