目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

大数据全系列 教程

1869个小节阅读:464.8k

收藏
全部开发者教程

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(224)
赞(0)

生产者_自定义分区机制

对于有key的消息而言,Java版本Producer自带的Partitioner会根据murmur2算法计算消息key哈希值,然后对总分区数求模得到消息要被发送到的目标分区号。对应的计算源码:(Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions)

若要使用自定义分区机制,需要完成两件事:

  1. 自定义分区器类

    1. 实现接口org.apache.kafka.clients.producer.Partitioner
    2. 覆写接口接口中的方法,主要分区逻辑在方法partition中完成。
  2. 在用于构造KafkaProducer的Properties对象中设置partitioner.class参数

需求:假设我们的消息中有一些消息是用于审计功能的,这类消息的key会被固定的分配一个字符串"baizhan"。我们让这类消息发送到topicA主题的最后一个分区上,便于后续统计处理。其它消息采用随机发送的策略。

具体实现步骤:

  1. 修改主题topicA的分区数为3

  2. 创建分区器类BaizhanPartitioner

  3. 编写BaizhanPartitioner类代码

     

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2