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

单位门户网站建设的请示网站做哪种推广好

单位门户网站建设的请示,网站做哪种推广好,做网页引用别的网站的视频,怎么注册wordpress账号分区算法分类 kafka在生产者投递消息时#xff0c;会根据是否有key采取不用策略来获取分区。 存在key时会根据key计算一个hash值#xff0c;然后采用hash%分区数的方式获取对应的分区。 而不存在key时采用随机算法选取分区#xff0c;然后将所有的消息封装到这个batch上直…分区算法分类 kafka在生产者投递消息时会根据是否有key采取不用策略来获取分区。 存在key时会根据key计算一个hash值然后采用hash%分区数的方式获取对应的分区。 而不存在key时采用随机算法选取分区然后将所有的消息封装到这个batch上直到达到限定数量然后才发送出去。 如下图6条消息采用key可能分三次发送到三个不同的分区需要3次网络请求。如果没有key将封住成一个批次发送。这样一次网路请求就可以发送多条消息大大提高了效率。 源码分析 producer根据keyBytes是否有值采用不同的分区策略。有key的计算hash % numPartitions得到分区。 public int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster,int numPartitions) {if (keyBytes null) {return stickyPartitionCache.partition(topic, cluster);}// hash the keyBytes to choose a partitionreturn Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions;} 并且kafka在这里做了缓存如果第一次获取到了粘性分区后面会缓存起来。  public int partition(String topic, Cluster cluster) {Integer part indexCache.get(topic);if (part null) {return nextPartition(topic, cluster, -1);}return part;} 没有key的采用stickyPartitionCache的策略这里是分区算法的主要代码。获取所有的availablePartitions然后如果availablePartitions大于1获取一个随机数random然后通过random % availablePartitions.size()的方式获取分区。 ListPartitionInfo availablePartitions cluster.availablePartitionsForTopic(topic);if (availablePartitions.size() 1) {Integer random Utils.toPositive(ThreadLocalRandom.current().nextInt());newPart random % partitions.size();} else if (availablePartitions.size() 1) {newPart availablePartitions.get(0).partition();} else {while (newPart null || newPart.equals(oldPart)) {int random Utils.toPositive(ThreadLocalRandom.current().nextInt());newPart availablePartitions.get(random % availablePartitions.size()).partition();}} abortForNewBatch表示需要发送到新的批次然后调用onNewBatch获取新的分区。 if (result.abortForNewBatch) {int prevPartition partition;partitioner.onNewBatch(record.topic(), cluster, prevPartition);partition partition(record, serializedKey, serializedValue, cluster);tp new TopicPartition(record.topic(), partition);...public void onNewBatch(String topic, Cluster cluster, int prevPartition) {stickyPartitionCache.nextPartition(topic, cluster, prevPartition);} 在下一个批次发送时会检测是否和上一个分区相同如果相同将会缓存一个新的分区。 // Check that the current sticky partition for the topic is either not set or that the partition that // triggered the new batch matches the sticky partition that needs to be changed.if (oldPart null || oldPart prevPartition) { 总结 为了提升kafka发送消息的速率在对消息顺序没有特殊的要求情况下应该尽量避免设置消息的key这样可以提交发送消息的吞吐量。
http://www.hkea.cn/news/14298370/

相关文章:

  • 营销型网站建设注意wordpress增加登陆功能
  • 网站做推广页需要什么商贸公司起名字大全免费
  • 北京市网站公司网站试用网站如何做
  • 安康网站建设制作广告运营
  • 代理网站哪个好网站建设与代运营产品介绍
  • 京东网站推广方式设计网站公司的口号
  • 网站建设项目经费的报告技术支持:佛山网站建设
  • 崇川区城乡建设局网站建设局和住建局的区别
  • 电白手机网站建设公司创建网站的英语
  • 怎么查看网站是否被百度惩罚降权或者被k公众号开发河北米云
  • 上海建设工程招投标在什么网站邢台谷歌seo
  • 效果图网站推荐大全.net网站 开发
  • 海外网站搭建网页制作怎么输入文字
  • 网站有哪些区别中国移动积分商城官网
  • 为什么建设网站很多公司没有网站模版与模板的使用
  • 东莞长安网站推广公司工程项目流程八个阶段
  • 网站开发的服务器是什么社区微网站建设方案ppt模板下载
  • 作业3 主题资源网站建设wordpress 开源
  • 怎么做刷业网站重庆点优建设网站公司
  • 网站建设中主页指的是网站建设方案策划
  • 营销网站的宣传、推广与运作服务器主机 网站
  • 金坛网站建设价格关于学校网站建设的需求分析
  • 做戒烟网站素材宁波网站建设价格
  • 找摄影作品的网站网站建设团队分工
  • 上海有多少个网站科技公司个人网站数据库怎么做
  • 想做网站建设网站制作软件是什么意思
  • 富锦建设局网站ie浏览器打开建设银行网站
  • xx单位网站建设方案网站备案地区名
  • 好发信息网站建设网站建设标准依据
  • 公司网站制作源码wordpress修改主题插件