您的当前位置:首页正文

kafka作业第二篇

来源:华拓网

1. 实现Random Partitioner(即对于每条消息,发送到一个随机的Partition)

import kafka.producer.Partitioner;

/**

* 随机达到某一个节点

* Created by niewj on 2016/11/30.

*/

public class RandomPartitioner implements Partitioner {

@Override

public int partition(Object key, int numPartitions) {

/**

* 获得一个0到1000之间的随机数

*/

int randomNum = new Double(Math.random() * 1000).intValue();

return randomNum % numPartitions;

}

}

2. 通过实验验证Partitioner的实例个数及其是否需要保证线程安全

3. 请思考何时应该使用同步Producer,何时应使用异步Producer

追求高性能,能容忍数据偶尔丢失的情况下,可以使用异步Producer;

追求高可用,要求数据完整性的情况,可以使用同步Producer