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

空调设备公司网站建设seo优化技巧

空调设备公司网站建设,seo优化技巧,本墨陈黑做网站有版权,做网站得叫什么【1】分区策略 Kafka中Topic是对数据逻辑上的分类,而Partition才是数据真正存储的物理位置。所以在生产数据时,如果只是指定Topic的名称,其实Kafka是不知道将数据发送到哪一个Broker节点的。我们可以在构建数据传递Topic参数的同时&#xff…

【1】分区策略

Kafka中Topic是对数据逻辑上的分类,而Partition才是数据真正存储的物理位置。所以在生产数据时,如果只是指定Topic的名称,其实Kafka是不知道将数据发送到哪一个Broker节点的。我们可以在构建数据传递Topic参数的同时,也可以指定数据存储的分区编号。

在这里插入图片描述
指定分区传递数据是没有任何问题的。Kafka会进行基本简单的校验,比如是否为空,是否小于0之类的。但是你的分区是否存在就无法判断了,所以需要从Kafka中获取集群元数据信息,此时会因为长时间获取不到元数据信息而出现超时异常。所以如果不能确定分区编号范围的情况,不指定分区还是一个不错的选择。

如果不指定分区,Kafka会根据集群元数据中的主题分区来通过算法来计算分区编号并设定:

(1) 如果指定了分区,直接使用

(2) 如果指定了自己的分区器,通过分区器计算分区编号,如果有效,直接使用

(3) 如果指定了数据Key,且使用Key选择分区的场合,采用murmur2非加密散列算法(类似于hash)计算数据Key序列化后的值的散列值,然后对主题分区数量模运算取余,最后的结果就是分区编号
在这里插入图片描述

(4) 如果未指定数据Key,或不使用Key选择分区,那么Kafka会采用优化后的粘性分区策略进行分区选择:

  • 没有分区数据加载状态信息时,会从分区列表中随机选择一个分区。在这里插入图片描述
  • 如果存在分区数据加载状态信息时,
    • 根据分区数据队列加载状态,通过随机数获取一个权重值。
    • 根据这个权重值在队列加载状态中进行二分查找法,查找权重值的索引值。
    • 将这个索引值加1就是当前设定的分区。

增加数据后,会根据当前粘性分区中生产的数据量进行判断,是不是需要切换其他的分区。判断标准就是大于等于批次大小(16K)的2倍,或大于一个批次大小(16K)且需要切换。如果满足条件,下一条数据就会放置到其他分区。

【2】分区器

在某些场合中,指定的数据我们是需要根据自身的业务逻辑发往指定的分区的。所以需要自己定义分区编号规则,而不是采用Kafka自动设置。Kafka早期版本中提供了两个分区器,不过在当前kafka版本中已经不推荐使用了。
在这里插入图片描述

自定义分区器

首先我们需要创建一个类,然后实现Kafka提供的分区类接口Partitioner,接下来重写方法。这里我们只关注partition方法即可,因为此方法的返回结果就是需要的分区编号。

/*** TODO 自定义分区器实现步骤:*      1. 实现Partitioner接口*      2. 重写方法*         partition : 返回分区编号,从0开始*         close*         configure*/
public class KafkaPartitionerMock implements Partitioner {/*** 分区算法 - 根据业务自行定义即可* @param topic The topic name* @param key The key to partition on (or null if no key)* @param keyBytes The serialized key to partition on( or null if no key)* @param value The value to partition on or null* @param valueBytes The serialized value to partition on or null* @param cluster The current cluster metadata* @return 分区编号,从0开始*/@Overridepublic int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster) {return 0;}@Overridepublic void close() {}@Overridepublic void configure(Map<String, ?> configs) {}
}

配置分区器

public class ProducerPartitionTest {public static void main(String[] args) {Map<String, Object> configMap = new HashMap<>();configMap.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");configMap.put( ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());configMap.put( ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());// 这里配置自定义分区器configMap.put( ProducerConfig.PARTITIONER_CLASS_CONFIG, KafkaPartitionerMock.class.getName());KafkaProducer<String, String> producer = null;try {producer = new KafkaProducer<>(configMap);for ( int i = 0; i < 1; i++ ) {ProducerRecord<String, String> record = new ProducerRecord<String, String>("test", "key" + i, "value" + i);final Future<RecordMetadata> send = producer.send(record, new Callback() {public void onCompletion(RecordMetadata recordMetadata, Exception e) {if ( e != null ) {e.printStackTrace();} else {System.out.println("数据发送成功:" + record.key() + "," + record.value());}}});}} catch ( Exception e ) {e.printStackTrace();} finally {if ( producer != null ) {producer.close();}}}
}
http://www.shuangfujiaoyu.com/news/57466.html

相关文章:

  • 网站开发看谁的教程百度视频推广怎么收费
  • 网站建设中小企业广西滕州网站建设优化
  • 山西太原网站建设公司太原seo排名公司
  • 网站建设服务的风险爱链接购买链接
  • 做H5哪个网站字体漂亮一些怎么做百度搜索排名
  • 重庆市建设工程节能中心网站西安网站建设比较好的公司
  • 网站做m版关键词搜索排名公司
  • 网站建设公司一月赚多少七牛云
  • 嘉华伊美网站建设百度秒收录软件
  • 网站建设 昆明营销型网站建设模板
  • 做期货的网站提高百度搜索排名
  • 四川住房和城乡建设厅网站首页seo优化的常用手法
  • 个人做网站犯法吗便宜的seo官网优化
  • 常熟做网站多少钱按seo排名大概多少钱
  • 交友网站美女要一起做外贸seo博客网址
  • 制作网站的软件主要有关键词排名公司
  • 陕西专业网站建设公司网站怎么收录
  • 网络营销产品推广百度搜索引擎优化方案
  • 怎么用dw做简单网站近期的新闻消息
  • 台州市临海建设局网站百度笔记排名优化
  • 网站模版开发山东今日热搜
  • 织梦做的网站删除手机上可以创建网站吗
  • WordPress HTML标签验证什么是seo如何进行seo
  • 关于电子商务的网站推广方案排名推广网站
  • 珠海澳门网站建设公司哪家好扶贫832网络销售平台
  • c 语言Vs做网站接口推广方式怎么写
  • 常用的博客建站程序沈阳沈河seo网站排名优化
  • 呼和浩特资产评估公司seo提升排名技巧
  • 可以做盗版漫画网站吗搜索引擎优化的主要手段
  • 国内做色情网站平台推广广告宣传词