zoukankan      html  css  js  c++  java
  • partition的分配策略简单代码实现

    先说说partition的好处:Partition的好处是可以并发的获取同类数据,提高效率。

    第一步需要实现Partitioner对象。

    public class ProducerPartitioner implements Partitioner<String> {
        public static final Logger LOG=LoggerFactory.getLogger(UserInfo.class);
        @Override
        public int partition(String key, int numPartitions) {
            LOG.info("ProducerPartitioner key:"+key+" partitions:"+numPartitions);
            return key.length() % numPartitions;
        }
    }
    在上面的partition方法中,值得注意的是,key我们是在构造数据发送对象时设置的,这个key是区分存储的关键,比如我想将我的数据按照不同的用户类别存储。
    第二步中就是需要构造数据的时候设定:
    /**选择用哪个类来进行设置partition*/
    props.put("partitioner.class", "org.kafka.partitioner.ProducerPartitioner");
     /**构造数据发送对象**/
    ProducerData<String,UserInfo> data=new ProducerData<String, UserInfo>("test","developerTest", msg);
    增加了对partition的配置,并且修改了ProducerData的参数,其中,中间的就是key(developerTest),如果不设置partition,kafka则随机的向broker中发送请求.
     
    今天就总结这么多吧!
  • 相关阅读:
    js 把数组中每个元素的某个字段取出
    vue 实现单选/多选效果
    js常用的array方法
    js的split()和join()的用法
    HTML 转 PDF 之 wkhtmltopdf
    微信小程序api封装(promise)
    常用的正则表达式
    更改MySQL的存储目录
    CentOS 6.X 安装VirtualBox-5.1
    CentOS 6.X 安装VNC Server实现图形化访问
  • 原文地址:https://www.cnblogs.com/xubiao/p/5361773.html
Copyright © 2011-2022 走看看