[elk]kafka集群

kafka高可用

并发写

[elk]kafka集群_第1张图片

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

[elk]kafka集群_第2张图片

并发读

[elk]kafka集群_第3张图片

数据组织模式

- 创建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

[elk]kafka集群_第4张图片

探究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个消费者时
[elk]kafka集群_第5张图片

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

[elk]kafka集群_第6张图片

3.当有3个p,3个消费者时
[elk]kafka集群_第7张图片
都是动态调配的(新增一个消费者, p的分配会自动变)

4.当有1个p,2个消费者
[elk]kafka集群_第8张图片

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

2个group,1个p

[elk]kafka集群_第9张图片

kafka cli最佳实战

    - 创建topic
        bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test-topic
        bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic test-topic2
        bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic test-topic3
    - 查看topic list
        bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --list
    - 查看topic 详细
        bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --topic test-topic3 --describe
    - 生产者
        bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic3
    基于zk的消费者
        - 查看基于zk的消费组
            bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test-topic3
        - 开启一个消费者(随机生成group)
            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
    基于kafka的消费者
        - 查看基于kafka的消费组
            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
        - 开启一个消费者(随机生成group)
            bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test-topic3 --group logstash-group
        - 开启一个消费者(指定group,可能偷走已有的消费者的数据)
            bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test-topic3 --group logstash-group

参考:
http://lxw1234.com/archives/2015/10/538.htm
https://www.cnblogs.com/AcAc-t/p/kafka_topic_consumer_group_command.html
https://www.cnblogs.com/happyday56/p/4208663.html

你可能感兴趣的:([elk]kafka集群)