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

河南省教育类网站前置审批wordpress 主页编辑

河南省教育类网站前置审批,wordpress 主页编辑,怎么查看竞争网站怎么做的seo,自己如何建设网站聊天室欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 1 引言2 消息ProducerRecord2.1 分区器 1 引言 …

欢迎来到啾啾的博客🐱。
记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。
有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。

目录

  • 1 引言
  • 2 消息ProducerRecord
    • 2.1 分区器

1 引言

在之前的Kafka篇章中,我们已经了解到Kafka Producer内部会有一个缓冲区,生产者通过批量发送消息的方式提升总体的吞吐。

批量发送在很多场景中都很常见,Kafka是如何实现的?
![[Kafka源码-批量消息-1.png]]
首先,我们需要理解消息。

2 消息ProducerRecord

Kafka消息的封装如下:

![[Kafka源码-批量消息-2.png]]

2.1 分区器

Kafka Producer可以指定消息发送到哪个Topic,也可以指定到哪个Partition。没有指定Partition时,Kafka Producer会使用分区器 Partitioner来决定消息应该到哪个partition。

可以看一下分区器 Partitioner 的方法
![[Kafka源码-批量消息-3.png]]

  • 参数如下:
    ProducerRecord<K, V> record:要发送的 Kafka 消息记录,包含主题、键、值、分区等信息。
    byte[] serializedKey:消息键的序列化字节数组。
    byte[] serializedValue:消息值的序列化字节数组。
    Cluster cluster:Kafka 集群的元数据信息,包含主题、分区等信息。

其中serializedKey和serializedValue是分别用了同一个序列化类的不同的序列化对象来做的:
![[Kafka源码-批量消息-5.png]]

![[Kafka源码-批量消息-4.png]]

有意思的是序列化方法传入的topic与headers信息在Kafka的默认序列化中是没有被使用的。
![[Kafka源码-批量消息-6.png]]

很显然,这两个参数topic和headers是为了序列化的扩展性预留的设计。
使用topic参数,可以为不同的topic准备不同的序列化策略,比如加密。

import org.apache.kafka.common.serialization.Serializer;
import java.nio.charset.StandardCharsets;
import java.util.Map;public class TopicAwareSerializer implements Serializer<String> {@Overridepublic void configure(Map<String, ?> configs, boolean isKey) {// 配置逻辑}@Overridepublic byte[] serialize(String topic, String data) {if ("sensitive-topic".equals(topic)) {// 对敏感主题的数据进行特殊处理String encryptedData = "encrypted:" + data;return encryptedData.getBytes(StandardCharsets.UTF_8);}return data.getBytes(StandardCharsets.UTF_8);}@Overridepublic void close() {// 关闭逻辑}
}

使用headers参数,比如编码格式、版本号等,也可以做一些定制化操作。

import org.apache.kafka.common.header.Headers;
import org.apache.kafka.common.serialization.Serializer;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Map;public class HeaderAwareSerializer implements Serializer<String> {@Overridepublic void configure(Map<String, ?> configs, boolean isKey) {// 配置逻辑}@Overridepublic byte[] serialize(String topic, Headers headers, String data) {Charset charset = StandardCharsets.UTF_8;if (headers.lastHeader("charset") != null) {String charsetName = new String(headers.lastHeader("charset").value(), StandardCharsets.UTF_8);charset = Charset.forName(charsetName);}return data.getBytes(charset);}@Overridepublic byte[] serialize(String topic, String data) {return serialize(topic, null, data);}@Overridepublic void close() {// 关闭逻辑}
}

需要注意的是,key|value.serializer都必须被设置为实现了org.apache.kafka.common.serialization.Serializer接口的类。

没有指定分区partition时,分区器partitioner.partition方法有三种实现。Kafka 在 Producer 中默认(不配置分区器)使用的是 DefaultPartitioner。你可以在创建 KafkaProducer 时通过配置 partitioner.class 属性来指定使用的分区器,若不指定,就会使用默认的 DefaultPartitioner。
![[Kafka源码-批量消息-7.png]]

  • DefaultPartitioner
    用途:这是 Kafka 默认的分区器。当消息有键(key)时,会使用键的哈希值对分区数取模来确定分区;当消息没有键时,会使用粘性分区(Sticky Partitioning)策略,在一段时间内将消息发送到同一个分区,以提高批量发送效率。
    使用场景:大多数常规业务场景,无需特殊分区策略时使用。
    ![[Kafka源码-批量消息-8.png]]

  • RoundRobinPartitioner
    用途:采用轮询的方式依次将消息发送到各个分区,确保消息均匀分布在所有分区上。
    使用场景:需要消息均匀分布,且对消息顺序没有严格要求的场景。
    ![[Kafka源码-批量消息-9.png]]

  • UniformStickyPartitioner
    用途:随机选择一个分区,并在一段时间内将消息都发送到该分区,以此减少请求数量,提高吞吐量。
    使用场景:对吞吐量要求较高,且对消息顺序没有严格要求的场景。

所以要指定好Partition。


文章转载自:

http://UdpVt2LT.chbcj.cn
http://LXRxFIbb.chbcj.cn
http://hPpwnmml.chbcj.cn
http://50wWtU2M.chbcj.cn
http://2qRuySkj.chbcj.cn
http://kOSSKXLM.chbcj.cn
http://HD4bxhJn.chbcj.cn
http://5ARbo3Ye.chbcj.cn
http://udpct2zC.chbcj.cn
http://wWe8dcBO.chbcj.cn
http://nkSraNoC.chbcj.cn
http://CHiLqlhR.chbcj.cn
http://k9ULzU0j.chbcj.cn
http://qiqCP2WB.chbcj.cn
http://UGY1Gghs.chbcj.cn
http://CjnXZ1Br.chbcj.cn
http://Vs39ngHK.chbcj.cn
http://y160qspc.chbcj.cn
http://0E4GYMvg.chbcj.cn
http://GYBL4Ssm.chbcj.cn
http://UVZVNFVl.chbcj.cn
http://Zur9qcfi.chbcj.cn
http://qEFuV6QA.chbcj.cn
http://Ekghkxl2.chbcj.cn
http://LOgQJm8d.chbcj.cn
http://9R3rSri3.chbcj.cn
http://FxRp9Amb.chbcj.cn
http://NK6tdm9e.chbcj.cn
http://sQLjt708.chbcj.cn
http://sEQvYPMd.chbcj.cn
http://www.dtcms.com/wzjs/612659.html

相关文章:

  • 湖北建设网站信息查询中心wordpress全站静态cdn
  • php网站开发考试网站开发tornado
  • 重庆网站建设快忻科技微信上怎么做广告推广
  • wordpress新闻站自动采集器电商平台运营方案
  • 定制网站建设公司推荐代运营合作协议
  • PHP网站新闻发布怎么做网站建设需要客户提供什么内容
  • 网站建设品牌推荐网站建设有哪些家
  • 网站开发及建设做一个网站需要哪些步骤
  • 全国做网站最好的公司珠海网站建设熊掌号
  • 创意上海专业网站建设东阳网站建设价格
  • 软件开发包含网站开发吗产品营销型网站建设
  • app和网站的区别是什么建站宝盒做的网站
  • 九江学网站建设wordpress卢松松评论模板
  • 婚纱摄影网站建设方案推进文明网站建设
  • 合肥网站推广 公司哪家好北京市住房和城乡建设局官网
  • 做网站不签合同dw下载手机版
  • 培训加盟网站建设seo资讯推推蛙
  • 冠县网站建设做网站的价格参考
  • 站内推广方式网站开发需要20万
  • 网站首页结构图网站制作可以询价么
  • o2o手机网站建设技术贵州省住房城乡建设厅网站
  • 营口网站优化如何提高网站的功能性建设
  • 建筑公司网站 新闻有代做统计图的网站吗
  • 企业做网站的好处做一个互联网平台需要多少钱
  • 遥阳科技网站建设pc网站建设和推广
  • 一个刚有官网的公司怎么做网站运营邢台哪个公司做网站好
  • 如何购买一个网站的域名卡盟网站怎么做图片素材
  • 网站首页模板代码甘肃兰州旅游必去十大景点
  • 门户网站开发哪家好餐饮店会员卡管理系统
  • 网站建设专业团队图片九江市住房和城乡建设局官方网站