解耦
ASynchronize异步
Synchronize 同步
1)如果是Kafka消费能力不足,则可以考虑增加Topic的分区数,并且同时提升消费组的消费者数量,消费者数=分区数。(两者缺一不可)
2)如果是下游的数据处理不及时:提高每批次拉取的数量。批次拉取数据过少(拉取数据/处理时间<生产速度),使处理的数据小于生产的数据,也会造成数据积压。
没有了消费积压,数据看起来美滋滋
一 kafka安装
1. 创建docker-net
docker network create -d overlay docker-net
讯享网
2. docker-compose-kafka.yml
讯享网version: '3.6' services: zk: image: wurstmeister/zookeeper networks: - docker-net ports: - "2181:2181" manager: image: kafkamanager/kafka-manager links: - zk:zk networks: - docker-net ports: - "10080:9000" environment: ZK_HOSTS: zk:2181 broker_1: image: wurstmeister/kafka networks: - docker-net links: - zk:zk ports: - "9092:9092" environment: KAFKA_BROKER_ID: 1 KAFKA_HOST_NAME: ip KAFKA_ADVERTISED_HOST_NAME: ip KAFKA_ZOOKEEPER_CONNECT: zk:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://ip:9092 KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 KAFKA_LOG_DIRS: /logs/kafka KAFKA_HEAP_OPTS: -Xmx16G -Xms16G volumes: - /data4/bin/kafka:/logs/kafka networks: docker-net: external: true
二 kafka 目录结构



Kafka的producer生产数据,要写入到log文件中,写的过程是一直追加到文件末端,为顺序写。官网有数据表明,同样的磁盘,顺序写能到到600M/s,而随机写只有100k/s。这与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间。

三 kafka消费策略 OffsetOldest OffsetNewest
只在 新建消费者组的时候生效
Kafka
OffsetNewest 从最新的 log offset用最新的 [用已存在的offset]



OffsetOldest最老的 从有记录[保存周期7天,即从7天前]从0开始消费

只在 新建消费者组的时候生效
一般会用OffsetNewest
新老业务,新业务不需要之前的数据
OffsetOldest
新老业务,新业务需要之前的数据 [ 应用场景比较少]
四 kafka日常运维命令小结
topic列表 kafka-topics.sh --list --zookeeper zk:2181 __consumer_offsets openai_kong_log topic详情 kafka-topics.sh --describe --zookeeper zk:2181 --topic openai_kong_log Topic: openai_kong_log PartitionCount: 8 ReplicationFactor: 1 Configs: Topic: openai_kong_log Partition: 0 Leader: 1 Replicas: 1 Isr: 1 Topic: openai_kong_log Partition: 1 Leader: 1 Replicas: 1 Isr: 1 Topic: openai_kong_log Partition: 2 Leader: 1 Replicas: 1 Isr: 1 Topic: openai_kong_log Partition: 3 Leader: 1 Replicas: 1 Isr: 1 Topic: openai_kong_log Partition: 4 Leader: 1 Replicas: 1 Isr: 1 Topic: openai_kong_log Partition: 5 Leader: 1 Replicas: 1 Isr: 1 Topic: openai_kong_log Partition: 6 Leader: 1 Replicas: 1 Isr: 1 Topic: openai_kong_log Partition: 7 Leader: 1 Replicas: 1 Isr: 1 消费组列表 kafka-consumer-groups.sh --bootstrap-server ip:9092 --list openai KMOffsetCache-7e0676b0a501 group_openai --consumer-property 消息堆积情况 kafka-consumer-groups.sh --bootstrap-server ip:9092 --group group_openai --describe Consumer group 'group_openai' has no active members. GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID group_openai openai_kong_log 3 13341 - - - group_openai openai_kong_log 4 13398 - - - group_openai openai_kong_log 1 13647 - - - group_openai openai_kong_log 2 13572 - - - group_openai openai_kong_log 7 13441 - - - group_openai openai_kong_log 5 13476 - - - group_openai openai_kong_log 6 13521 - - - group_openai openai_kong_log 0 - - -
单个topic 常见操作
讯享网1.创建topic kafka-topics.sh --zookeeper ip:2181 \ --create --replication-factor 1 --partitions 1 --topic first 2.发送消息 kafka-console-producer.sh \ --broker-list ip:9082 --topic first >hello world >atguigu atguigu 消费消息 --from-beginning:会把主题中以往所有的数据都读取出来 kafka-console-consumer.sh \ --bootstrap-server ip:9082 --from-beginning --topic first 3.修改分区数 kafka-topics.sh --zookeeper ip:2181 --alter --topic first --partitions 6 4.删除topic kafka-topics.sh --zookeeper ip:2181 \ --delete --topic first
参考
https://www.cnblogs.com/wangzhuxing/p/10127497.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/23517.html