摘要:
1. execute 和 submit 的区别 前面说了还需要介绍多线程中使用 execute 和 submit 的区别(这两个方法都是线程池 ThreadPoolExecutor 的方法)。 1.1 方法来源不同 execute 方法是线程池的顶层接口 Executor 定义的,在 ThreadP 阅读全文
摘要:
昨天(2022-7-22)上线了我的一个功能,测试环境数据量较小,问题不大,但是上生产之后,直接卡死了,然后就开始了这么一次SQL优化,这里记录一下。 不太方便透露公司的表结构,这里我自己建了几张表,模拟一下就可以了。 肯定有杠精要说表可以不这样设计了,但是事实现在系统就是这样设计的,如果想改动表设 阅读全文
摘要:
一、延时队列 1. 简介 TimingWheel是kafka时间轮的实现,内部包含了⼀个TimerTaskList数组,每个数组包含了⼀些链表组成的TimerTaskEntry事件,每个TimerTaskList表示时间轮的某⼀格,这⼀格的时间跨度为tickMs,同⼀个TimerTaskList中的 阅读全文
摘要:
一、事务 1. 事务简介 1.1 事务场景 producer发的多条消息组成⼀个事务这些消息需要对consumer同时可⻅或者同时不可⻅ producer可能会给多个topic,多个partition发消息,这些消息也需要能放在⼀个事务⾥⾯,这就形成了⼀个典型的分布式事务 kafka的应⽤场景经常是 阅读全文
摘要:
一、主题管理 使⽤kafka-topics.sh脚本时可用的配置: 选项 说明 --config <String: name=value> 为创建的或修改的主题指定配置信息。⽀持下述配置条⽬:cleanup.policycompression.typedelete.retention.msfile. 阅读全文
摘要:
一、副本机制 Kafka在⼀定数量的服务器上对主题分区进⾏复制。 当集群中的⼀个broker宕机后系统可以⾃动故障转移到其他可⽤的副本上,不会造成数据丢失。 创建主题: kafka-topics.sh --zookeeper localhost:2181/myKafka --create --top 阅读全文
摘要:
一、消费者相关概念 1.1 消费组&消费者 消费者: 消费者从订阅的主题消费消息,消费消息的偏移量保存在Kafka的名字是__consumer_offsets的主题中 消费者还可以将⾃⼰的偏移量存储到Zookeeper,需要设置offset.storage=zookeeper 推荐使⽤Kafka存储 阅读全文
摘要:
一、消息发送 1.1 数据生产流程 数据生产流程图解: Producer创建时,会创建⼀个Sender线程并设置为守护线程 ⽣产消息时,内部其实是异步流程;⽣产的消息先经过拦截器->序列化器->分区器,然后将消息缓存在缓冲区(该缓冲区也是在Producer创建时创建) 批次发送的条件为:缓冲区数据⼤ 阅读全文
摘要:
$KAFKA_HOME/config/server.properties⽂件中的配置 一、zookeeper.connect 该参数⽤于配置Kafka要连接的Zookeeper/集群的地址。 它的值是⼀个字符串,使⽤逗号分隔Zookeeper的多个地址。Zookeeper的单个地址是host:por 阅读全文
摘要:
一、消息的发送和接收 ⽣产者主要的对象有:KafkaProducer,ProducerRecord。 其中KafkaProducer是⽤于发送消息的类,ProducerRecord类⽤于封装 Kafka 的消息。 KafkaProducer的创建需要指定的参数和含义: 参数 说明 bootstrap 阅读全文