kafka
文章平均质量分 69
kafka
developer@liyong
GISer
展开
-
消息队列-Kafka-如何进行顺序消费
然后指定partitioner.class为我们的class,这样就可以自定义我们的分区逻辑,这个时候把需要放到同一个分区的数据使用同样的运算逻辑放到同一个分区即可。如果我们还是想同时消费多个分区并且保证有序,这个时候我们需要将需要保证顺序的消息路由到同一个分区。上面的代码定义了消息会被送到哪一个分区,我们发现起作用的是Partitioner。我们在ProducerConfig里面可以找到只有一段,使用了默认的分区。只有 1 个分区,那这个时候就是能够保证消息的顺序消费。原创 2024-03-07 22:22:13 · 553 阅读 · 0 评论 -
消息队列-Kafka-消费方如何分区与分区重平衡
拉取消息:org.apache.kafka.clients.consumer.KafkaConsumer#pollForFetches。协调者会选一个leader一般是先发起JoinGroup的消费者,这个时候协调器会告诉这个消费者去进行分区方案的生成。作用是让组内所有的消费者知道自己应该消费那个分区或者它可以不用消费分区,或者消费多个分区,都是由重平衡机制来保证的。入组成功,自己被选为分配分区的 leader:AbstractCoordinator#onJoinComplete。原创 2024-03-07 23:17:59 · 1102 阅读 · 0 评论 -
kafka架构
kafka数据读取策略1)顺序写磁盘Kafka 的 producer 生产数据,写的过程是一直追加到文件末端,为顺序写(省去了寻址的时间)。 官网有数据表明,同样的磁盘,顺序写能到 600M/s,而随机写只有 100K/s。2)零复制技术零拷贝,零拷贝技术见知识点/零拷贝kafka选举机制kafka集群中会有一个broker会被选举为 Controller,负责管理集群 broker 的上下线,所有 topic 的分区副本分配和 leader 选举等工作。消费策略一个 consumer原创 2021-02-09 13:50:47 · 121 阅读 · 2 评论 -
消息队列-kafka-高性能设计及对比
消息查询:RocketMq “topic+key”、“topic+messageId” 支持,kafka 不支持。3 在发送消息的时候,先是通过send发送到了队列里面,然后sender线程批次发送,这样节省了网络开销。Master宕机有无自动切换:RocketMq普通不支持但是 Dledger 支持,kafka 自动支持。建立了一个通道,不将数据拷贝到用户态,而是直接由用户写这个通道,这样少一次拷贝。消息过滤:RocketMq支持,kafka 不支持。消息轨迹:RocketMq支持,kafka 不支持。转载 2024-03-09 23:40:22 · 77 阅读 · 0 评论 -
消息队列-Kafka-基础架构
上面这张图类比RocketMQ 相当于对一个主题进行了分区(类似于RockeMQ 消息队列),每个分区存储到不同的Broker。在发送消息的时候都是发送到主分区。如果一台Broker由于其它节点备份了挂掉节点的数据,所以可以继续进行消费,从而保证了整个集群的高可用性。原创 2024-03-04 21:57:37 · 797 阅读 · 0 评论 -
消息队列-kafka-消息发送流程(源码跟踪) 与消息可靠性
我们发现里面是用一个MAP存储的一个分区和ProducerBatch 是讲这个消息写到内存里面MemoryRecordsBuilder 通过这个进行写入。6 接着我们就要看返回逻辑了,可以看到在sendRequest里面sendProduceRequest方法是通过传入了一个回调函数处理返回的。主线程:主线程只负责组织消息,如果是同步发送会阻塞,如果是异步发送需要传入一个回调函数。5 接着我们看,我们append了以后,会有一个判断去唤醒sender线程,见下面的注释。Map集合:存储了主线程的消息。原创 2024-03-04 23:44:59 · 994 阅读 · 1 评论 -
Kafka操纵
Kafka命令创建主题bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test查看主题bin/kafka-topics.sh --list --bootstrap-server localhost:9092启动生产端,发送消息bin/kafka-console-producer.sh --bootstrap-se原创 2021-02-10 09:27:55 · 339 阅读 · 0 评论 -
kafka鹰眼监控
修改kafka启动命令if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"export JMX_PORT=".原创 2021-02-10 11:12:58 · 430 阅读 · 0 评论 -
消息队列-kafka-服务端处理架构(架构,Topic文件结构,服务端数据的一致性)
2 活过来的时候,发现已经有顶替的 leader 角色(主分片)了,那么就跟随,也就是向 leader 获取 HW 高水位线,与自己的 LEO 比对,大于 LEO 则删除,小于 LEO 则从 leader 这边复制数据过去。1 首先它会从ISR中剔除,当恢复正常的时候,会向主分片获取 HW 高水位线,与自己的 LEO 比对,如果自己的 LEO 超过 HW 则干掉超过的部分,小于的话就从主分片复制数据过来。HW:高水位,消费者消费最高的位置,其实也就是木桶原理,所以只能到下面图中的第四条消息。原创 2024-03-05 22:17:41 · 1100 阅读 · 0 评论