原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://tchuairen.blog.51cto.com/3848118/1855090
话题和日志 (Topic和Log)
分布式(Distribution)
生产者(Producers)
消费者(Consumers)
Kafka的保证(Guarantees)
1
2
|
tar
xf kafka_2.11-0.10.0.1.tgz
cd
kafka_2.11-0.10.0.1
|
1
2
3
|
bin
/zookeeper-server-start
.sh config
/zookeeper
.properties
# 启动zookeeper服务端实例
bin
/kafka-server-start
.sh config
/server
.properties
# 启动kafka服务端实例
|
1
|
bin
/kafka-topics
.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic
test
|
1
|
bin
/kafka-topics
.sh --list --zookeeper localhost:2181
|
1
2
3
|
bin
/kafka-console-producer
.sh --broker-list localhost:9092 --topic
test
This is a message
This is another message
|
1
2
3
|
bin
/kafka-console-consumer
.sh --zookeeper localhost:2181 --topic
test
--from-beginning
This is a message
This is another message
|
1
|
bin
/kafka-topics
.sh --describe --zookeeper localhost:2181 --topic peiyinlog
|
1
|
bin
/kafka-topics
.sh --zookeeper 192.168.90.201:2181 --alter --topic test2 --partitions 20
|
1
|
bin
/kafka-topics
.sh --zookeeper zk_host:port
/chroot
--delete --topic my_topic_name
|
1
|
delete.topic.
enable
=
true
|
broker_server ip | 主机名 | zookeeper ip | 客户端 ip |
192.168.1.2 | 默认 localhost | 192.168.1.4 | 192.168.1.5 |
1
2
3
|
# 此时客户端向broker发起一些消费:
bin
/kafka-console-consumer
.sh --zookeeper 192.168.1.4:2181 --topic test2 --from-beginning
|
1
2
3
4
5
6
7
8
|
# server.properties
broker.
id
=0
# broker节点的唯一标识 ID 不能重复。
host.name=10.10.4.1
# 监听的地址,如果不设置默认返回主机名给zk_server
log.
dirs
=
/u01/kafka/kafka_2
.11-0.10.0.1
/data
# 消息数据存放路径
num.partitions=6
# 默认主题(Topic)分片数
log.retention.hours=24
# 消息数据的最大保留时长
zookeeper.connect=10.160.4.225:2181
# zookeeper server 连接地址和端口
|
1
2
3
4
5
6
7
8
9
|
output {
kafka {
workers => 2
bootstrap_servers =>
"10.160.4.25:9092,10.160.4.26:9092,10.160.4.27:9092"
topic_id =>
"xuexilog"
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
input{
kafka {
zk_connect =>
"112.100.6.1:2181,112.100.6.2:2181,112.100.6.3:2181"
group_id =>
"logstash"
topic_id =>
"xuexilog"
reset_beginning =>
false
consumer_threads => 5
decorate_events =>
true
}
}
# 这里group_id 需要解释一下,在Kafka中,相同group的Consumer可以同时消费一个topic,不同group的Consumer工作则互不干扰。
# 补充: 在同一个topic中的同一个partition同时只能由一个Consumer消费,当同一个topic同时需要有多个Consumer消费时,则可以创建更多的partition。
output {
if
[
type
] ==
"nginxacclog"
{
elasticsearch {
hosts => [
"10.10.1.90:9200"
]
index =>
"logstash-nginxacclog-%{+YYYY.MM.dd}"
manage_template =>
true
flush_size => 50000
idle_flush_time => 10
workers => 2
}
}
}
|
1
|
bin
/kafka-consumer-groups
.sh --group logstash --describe --zookeeper 127.0.0.1:2181
|
GROUP | TOPIC | PARTITION | CURRENT-OFFSET | LOG-END-OFFSET | LAG |
消费者组 | 话题id | 分区id | 当前已消费的条数 | 总条数 | 未消费的条数 |
来源:http://tchuairen.blog.51cto.com/3848118/1855090