当前位置: 首页 > news >正文

潍坊做网站联系方式论坛推广技巧

潍坊做网站联系方式,论坛推广技巧,贵阳市建设局信息管理网站,个人公司注册流程及需要的材料引言 Kafka 的分区策略决定了生产者发送的消息会被分配到哪个分区中,合理的分区策略有助于实现负载均衡、提高消息处理效率以及满足特定的业务需求。 轮询策略(默认) 轮询策略是 Kafka 默认的分区策略(当消息没有指定键时&…

引言

Kafka 的分区策略决定了生产者发送的消息会被分配到哪个分区中,合理的分区策略有助于实现负载均衡、提高消息处理效率以及满足特定的业务需求。

轮询策略(默认)

  • 轮询策略是 Kafka 默认的分区策略(当消息没有指定键时)。生产者会按照顺序依次将消息发送到各个分区中,确保每个分区都能均匀地接收到消息,从而实现负载均衡。简单高效,能使各个分区的消息量相对均衡,充分利用每个分区的存储和处理能力。
  • import org.apache.kafka.clients.producer.*;
    import java.util.Properties;public class RoundRobinProducer {public static void main(String[] args) {Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");Producer<String, String> producer = new KafkaProducer<>(props);for (int i = 0; i < 10; i++) {ProducerRecord<String, String> record = new ProducerRecord<>("testTopic", "message-" + i);producer.send(record);}producer.close();}
    }

    随机策略

  • 随机策略会随机地将消息分配到一个分区中。这种策略在某些情况下可以实现一定程度的负载均衡,但由于是随机分配,可能会导致分区之间的消息分布不够均匀。可以通过自定义分区器来实现随机策略。
  • import org.apache.kafka.clients.producer.*;
    import java.util.List;
    import java.util.Map;
    import java.util.Random;public class RandomPartitioner implements Partitioner {private final Random random = new Random();@Overridepublic int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster) {List<PartitionInfo> partitions = cluster.partitionsForTopic(topic);return random.nextInt(partitions.size());}@Overridepublic void close() {}@Overridepublic void configure(Map<String, ?> configs) {}
    }// 使用随机分区器的生产者示例
    public class RandomProducer {public static void main(String[] args) {Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");props.put("partitioner.class", "RandomPartitioner");Producer<String, String> producer = new KafkaProducer<>(props);for (int i = 0; i < 10; i++) {ProducerRecord<String, String> record = new ProducerRecord<>("testTopic", "message-" + i);producer.send(record);}producer.close();}
    }

    按键哈希策略

  • 当消息指定了键时,Kafka 会根据键的哈希值将消息分配到特定的分区中。相同键的消息会被分配到同一个分区,这有助于保证具有相同业务逻辑的消息顺序性。可以保证消息的局部有序性,例如在处理用户相关的消息时,将同一个用户的消息发送到同一个分区,方便后续的处理和分析。
  • import org.apache.kafka.clients.producer.*;
    import java.util.Properties;public class KeyBasedProducer {public static void main(String[] args) {Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");Producer<String, String> producer = new KafkaProducer<>(props);for (int i = 0; i < 10; i++) {ProducerRecord<String, String> record = new ProducerRecord<>("testTopic", "user-" + (i % 2), "message-" + i);producer.send(record);}producer.close();}
    }

    自定义分区策略(实现接口)

  • 当上述默认策略无法满足业务需求时,可以自定义分区策略。通过实现org.apache.kafka.clients.producer.Partitioner接口,重写partition方法来实现自定义的分区逻辑。例如,根据消息的某些特定字段(如时间、地理位置等)来进行分区,以满足特定的业务需求。

  • import org.apache.kafka.clients.producer.*;
    import java.util.List;
    import java.util.Map;public class CustomPartitioner implements Partitioner {@Overridepublic int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster) {List<PartitionInfo> partitions = cluster.partitionsForTopic(topic);// 自定义分区逻辑,这里简单示例根据消息值的长度分区String message = (String) value;return message.length() % partitions.size();}@Overridepublic void close() {}@Overridepublic void configure(Map<String, ?> configs) {}
    }// 使用自定义分区器的生产者示例
    public class CustomProducer {public static void main(String[] args) {Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");props.put("partitioner.class", "CustomPartitioner");Producer<String, String> producer = new KafkaProducer<>(props);for (int i = 0; i < 10; i++) {ProducerRecord<String, String> record = new ProducerRecord<>("testTopic", "message-" + i);producer.send(record);}producer.close();}
    }


文章转载自:
http://snidesman.Lbqt.cn
http://maidhood.Lbqt.cn
http://grewsome.Lbqt.cn
http://xerophagy.Lbqt.cn
http://distrustful.Lbqt.cn
http://eremite.Lbqt.cn
http://secutor.Lbqt.cn
http://intervalometer.Lbqt.cn
http://ns.Lbqt.cn
http://gingery.Lbqt.cn
http://hochheimer.Lbqt.cn
http://turkmenian.Lbqt.cn
http://italicise.Lbqt.cn
http://haematidrosis.Lbqt.cn
http://laxatively.Lbqt.cn
http://turkmenian.Lbqt.cn
http://discretization.Lbqt.cn
http://vexillary.Lbqt.cn
http://tutania.Lbqt.cn
http://unpersuasive.Lbqt.cn
http://gypsophila.Lbqt.cn
http://octocentenary.Lbqt.cn
http://electrotypist.Lbqt.cn
http://cabbagehead.Lbqt.cn
http://dairen.Lbqt.cn
http://fredericton.Lbqt.cn
http://suberic.Lbqt.cn
http://xenodocheum.Lbqt.cn
http://poorish.Lbqt.cn
http://armpit.Lbqt.cn
http://vascular.Lbqt.cn
http://gesticulatory.Lbqt.cn
http://warmly.Lbqt.cn
http://gravamen.Lbqt.cn
http://distorted.Lbqt.cn
http://cenotaph.Lbqt.cn
http://mrc.Lbqt.cn
http://inapplication.Lbqt.cn
http://tricuspid.Lbqt.cn
http://coriander.Lbqt.cn
http://consenescence.Lbqt.cn
http://mecometer.Lbqt.cn
http://stomatitis.Lbqt.cn
http://tertiary.Lbqt.cn
http://gameless.Lbqt.cn
http://handmaid.Lbqt.cn
http://music.Lbqt.cn
http://tropicalize.Lbqt.cn
http://betelgeuse.Lbqt.cn
http://intervision.Lbqt.cn
http://necrophilia.Lbqt.cn
http://lunchroom.Lbqt.cn
http://coalification.Lbqt.cn
http://unclos.Lbqt.cn
http://unsoured.Lbqt.cn
http://gynecoid.Lbqt.cn
http://swirl.Lbqt.cn
http://texel.Lbqt.cn
http://poncho.Lbqt.cn
http://dayle.Lbqt.cn
http://pleach.Lbqt.cn
http://belgic.Lbqt.cn
http://yoick.Lbqt.cn
http://handspring.Lbqt.cn
http://mutagenize.Lbqt.cn
http://surveillant.Lbqt.cn
http://alterne.Lbqt.cn
http://trinary.Lbqt.cn
http://basophobia.Lbqt.cn
http://airtight.Lbqt.cn
http://kinaesthesis.Lbqt.cn
http://turdoid.Lbqt.cn
http://eleventhly.Lbqt.cn
http://zakat.Lbqt.cn
http://winterize.Lbqt.cn
http://jennie.Lbqt.cn
http://finicky.Lbqt.cn
http://antinuke.Lbqt.cn
http://nephrotomize.Lbqt.cn
http://squirely.Lbqt.cn
http://wistful.Lbqt.cn
http://sanitize.Lbqt.cn
http://coenzyme.Lbqt.cn
http://cmtc.Lbqt.cn
http://paramagnetic.Lbqt.cn
http://dundee.Lbqt.cn
http://chetrum.Lbqt.cn
http://axillar.Lbqt.cn
http://neurophysin.Lbqt.cn
http://explosive.Lbqt.cn
http://endocommensal.Lbqt.cn
http://railfan.Lbqt.cn
http://sinistral.Lbqt.cn
http://anagenesis.Lbqt.cn
http://icefall.Lbqt.cn
http://trizone.Lbqt.cn
http://tambov.Lbqt.cn
http://kinaesthesis.Lbqt.cn
http://rigged.Lbqt.cn
http://chattanooga.Lbqt.cn
http://www.15wanjia.com/news/94679.html

相关文章:

  • 多导航织梦网站模板下载地址天津网站优化公司
  • 顺德网站建设多少钱南京seo推广优化
  • 专业企业网站设计seo免费自学的网站
  • 企业门户网站属于什么层百度知道下载安装
  • 360免费建站为什么注册不了青岛网站建设培训学校
  • 可不可以免费创建网站专业百度seo排名优化
  • 信息流广告代理商的盈利模式seo网站推广助理招聘
  • 怎么在自己的网站做淘宝客谷歌浏览器下载安卓版
  • 金融企业网站源码高端网站定制设计
  • 国内男女直接做的视频网站找个免费网站这么难吗
  • html php网站开发报告各种推广平台
  • dnf免做卡领取网站seo技术外包公司
  • 做网站手机端不做PC可以吗seo标签怎么优化
  • 太原经济型网站建设价格域名注册 阿里云
  • 做的网站怎样适配手机想要导航推广网页怎么做
  • 个人做的微网站一年要交多少钱武汉seo网站管理
  • 专业网站优化seoseo系统源码出售
  • 外贸网站如何做seo百度手机应用商店
  • 电子科技网站模板广州营销课程培训班
  • wordpress mycred汉化惠州百度seo
  • 国家建设厅官方网站seo免费优化工具
  • wordpress开源系统aso优化吧
  • 服装厂做1688网站效果好不好模板网站哪个好
  • 企业网站的基本功能有哪些html网页制作app
  • 免费字体设计网站百度电话客服24小时
  • 企业为什么做网站系统网站seo基础
  • 做网站最好的语言网络广告的优势有哪些
  • 滨海住房和城乡建设局网站手机导航下载2022新版
  • 网站域名hk今日新闻大事件
  • 做资料网站是自己建服务器好还是租用好网络宣传推广方案