[elk]kafka集群

kafka高可用

并发写

每一个分区都是一个顺序的、不可变的消息队列, 并且可以持续的添加。分区中的消息都被分了一个序列号,称之为偏移量(offset),在每个分区中此偏移量都是唯一的。

并发读

数据组织模式

- 创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test-topic1
- 生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic

1.创建了3个p的topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic test-topic3

2.Kafka中可以将Topic从物理上划分成一个或多个分区(Partition),每个分区在物理上对应一个文件夹,以”topicName_partitionIndex”的命名方式命名,该文件夹下存储这个分区的所有消息(.log)和索引文件(.index),这使得Kafka的吞吐率可以水平扩展。
n1: p0
test-topic3-0

n2: p1
test-topic3-1

n3: p2
test-topic3-2
[root@n1 logstash]# ls -ld /data/kafka-logs/test-topic3-0

[root@n2 logstash]# ls -ld /data/kafka-logs/test-topic3-1

[root@n3 logstash]# ls -ld /data/kafka-logs/test-topic3-2

读写

消费者可以从
1.zk拉数据

## src_base_zk
- 查看基于zk的消费组
bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test-topic3

- 查看group详情(判断cusumer是否正常)
bin/kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --group logstash-group --describe

2,kafka拉数据

## src_base_kafka
- 查看zk
bin/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list

- 查看group详情(判断cusumer是否正常)
bin/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --group logstash-group --describe

- 查看实时消费日志
bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test-topic3

探究kafka p和消费者个数之间的关系

实验环境

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

- 生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic

监控消费日志
[root@n1 kafka]# bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test-topic
hi
mao

logstash消费

input {
  kafka {
    bootstrap_servers => "localhost:9092"
    topics => "test-topic"
    group_id => "logstash-group"
    codec => "json"
    consumer_threads => 1
    decorate_events => true
  }
}

output {
    stdout { codec => rubydebug }
}

/usr/local/logstash/bin/logstash -f logstash.yaml --config.reload.automatic

一个group,3个p

先创建3个p的test-topic3
1.当有3个p, 1个消费者时

2.当有3个p,2个消费者时

3.当有3个p,3个消费者时

都是动态调配的(新增一个消费者, p的分配会自动变)

4.当有1个p,2个消费者

小结: 同一个消费组, 消费者个数<=p个数

2个group,1个p

猜你喜欢

转载自www.cnblogs.com/iiiiher/p/9270116.html