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

达州住房和城乡建设厅网站今天重大新闻摘抄

达州住房和城乡建设厅网站,今天重大新闻摘抄,成都网站建设推广在,现在网络推广有哪些平台在 Kafka 中,默认情况下消息是按分区进行顺序存储和读取的,但全局顺序消费(即所有分区的消息按顺序消费)较难实现。下面分别介绍 Kafka 按分区顺序消费以及实现全局顺序消费的相关内容。 按分区顺序消费 Kafka 本身可以保证单个…

在 Kafka 中,默认情况下消息是按分区进行顺序存储和读取的,但全局顺序消费(即所有分区的消息按顺序消费)较难实现。下面分别介绍 Kafka 按分区顺序消费以及实现全局顺序消费的相关内容

按分区顺序消费

Kafka 本身可以保证单个分区内的消息是顺序写入和顺序读取的,以下是其原理和实现要点:

原理

  • 消息写入:Kafka 生产者在发送消息时,如果指定了分区,消息会被顺序追加到该分区的日志文件末尾。Kafka 的分区日志是一个只允许追加写入的文件,这种设计保证了消息在分区内的顺序性。
  • 消息读取:Kafka 消费者从分区中按偏移量(offset)顺序读取消息,偏移量是消息在分区内的唯一标识,消费者按照偏移量从小到大的顺序读取消息,从而保证了消息消费的顺序性。

实现要点

  • 生产者配置:生产者在发送消息时,需要明确指定消息要发送到的分区。可以通过自定义分区器或者直接指定分区号来实现。
import org.apache.kafka.clients.producer.*;
import java.util.Properties;public class OrderedProducer {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);String topic = "test-topic";int partition = 0; // 指定分区号for (int i = 0; i < 10; i++) {ProducerRecord<String, String> record = new ProducerRecord<>(topic, partition, "key-" + i, "value-" + i);producer.send(record);}producer.close();}
}
  • 消费者配置:消费者需要确保按顺序处理消息,并且在处理完一条消息后再处理下一条消息。同时,要避免手动调整偏移量,以免破坏消息的顺序。
import org.apache.kafka.clients.consumer.*;
import java.time.Duration;
import java.util.Collections;
import java.util.Properties;public class OrderedConsumer {public static void main(String[] args) {Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");props.put("group.id", "test-group");props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");props.put("auto.offset.reset", "earliest");KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);String topic = "test-topic";consumer.subscribe(Collections.singletonList(topic));try {while (true) {ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));for (ConsumerRecord<String, String> record : records) {System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());// 处理完一条消息后再处理下一条}consumer.commitSync(); // 同步提交偏移量}} finally {consumer.close();}}
}

全局顺序消费

要实现全局顺序消费,需要将所有消息发送到同一个分区,因为 Kafka 只能保证单个分区内的消息顺序性。但这种方式会带来性能瓶颈,因为单个分区的处理能力是有限的。

实现要点

  • 生产者配置:生产者需要将所有消息都发送到同一个分区,可以通过自定义分区器来实现。
import org.apache.kafka.clients.producer.*;
import java.util.Properties;public class GlobalOrderedProducer {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", "com.example.SinglePartitionPartitioner");Producer<String, String> producer = new KafkaProducer<>(props);String topic = "test-topic";for (int i = 0; i < 10; i++) {ProducerRecord<String, String> record = new ProducerRecord<>(topic, "key-" + i, "value-" + i);producer.send(record);}producer.close();}
}// 自定义分区器,将所有消息发送到同一个分区
class SinglePartitionPartitioner implements Partitioner {@Overridepublic int partition(String topic, Object key, byte[] keyBytes, Object value, byte[] valueBytes, Cluster cluster) {return 0; // 所有消息都发送到分区0}@Overridepublic void close() {}@Overridepublic void configure(java.util.Map<String, ?> configs) {}
}
  • 消费者配置:只需要一个消费者实例来消费该分区的消息,避免多个消费者同时消费同一个分区导致的顺序问题。
import org.apache.kafka.clients.consumer.*;
import java.time.Duration;
import java.util.Collections;
import java.util.Properties;public class GlobalOrderedConsumer {public static void main(String[] args) {Properties props = new Properties();props.put("bootstrap.servers", "localhost:9092");props.put("group.id", "test-group");props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");props.put("auto.offset.reset", "earliest");KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);String topic = "test-topic";consumer.subscribe(Collections.singletonList(topic));try {while (true) {ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));for (ConsumerRecord<String, String> record : records) {System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());// 处理完一条消息后再处理下一条}consumer.commitSync(); // 同步提交偏移量}} finally {consumer.close();}}
}

文章转载自:

http://CD4EirE5.gypcr.cn
http://NG1bsTSS.gypcr.cn
http://5gOzPf5Y.gypcr.cn
http://Z9Wuce3t.gypcr.cn
http://miynIo2s.gypcr.cn
http://jOnnXktb.gypcr.cn
http://nn50C9rv.gypcr.cn
http://sPwZXo8B.gypcr.cn
http://rSJqyC6k.gypcr.cn
http://FE5AxVq8.gypcr.cn
http://M9Rz7tLq.gypcr.cn
http://DeieSbwW.gypcr.cn
http://qpgAbeiV.gypcr.cn
http://24ldfriu.gypcr.cn
http://jZybsApj.gypcr.cn
http://SjCHqI78.gypcr.cn
http://kqCDXZs1.gypcr.cn
http://CyeJOiUb.gypcr.cn
http://j8dDIzB2.gypcr.cn
http://vwdbQdYC.gypcr.cn
http://sWsIC63M.gypcr.cn
http://7tKaq24G.gypcr.cn
http://fx5O5ujz.gypcr.cn
http://vzlVmOY0.gypcr.cn
http://xNh2vm1M.gypcr.cn
http://EEvY2ccR.gypcr.cn
http://SV17xe2I.gypcr.cn
http://pVhJlkaU.gypcr.cn
http://uCH2Y9Zj.gypcr.cn
http://ckozab3r.gypcr.cn
http://www.dtcms.com/wzjs/702124.html

相关文章:

  • 机械 网站源码如何查看网站开发者
  • 深圳好蜘蛛网站建设公司查网站域名
  • 企业网站建设课程体会网站开发公司的推广费用
  • 宜昌模板网站建设淘宝店招图片大全免费
  • 网站运营推广怎么做建立主题网站的顺序一般是
  • 网上下载的网站后台安全吗松松软文平台
  • 网站建设工作组怎么注册自己的网站域名
  • 建设官方网站登录社交手机网站开发
  • 怎么样推广自己的网址西安网站seo方法
  • 兰州最好的网站建设公司哪家好开网站 主机 服务器
  • 宁波做外贸网站建设西安seo霸屏
  • 网页设计的价格网站优化合同模板
  • 做网站的是什么职位一般网站建设流程
  • 制作企业免费网站制作网站哪家专业
  • 保定网站建设培训班wordpress专题修改
  • 池州网站建设哪家好室内装修设计网站推荐
  • 公司推广网站建设话术国外服务器免费ip地址
  • 物流网站设计c 做的博客网站
  • 清苑住房和城乡建设局网站aspnet校友录网站开发
  • 资源网站如何做做网站的个人心得
  • 扬州建设教育信息网站wordpress动画插件下载
  • 企业网站模板免费网页游戏吃显卡还是cpu
  • seo整站优化技术培训福贸外贸论坛
  • ppt下载免费网站小程序免费制作平台用
  • 搜搜网站收录提交入口.asp网站开发
  • asp.net做织梦网站网站开发岗位
  • php网站开发 pdf永州市建设网站
  • 网站搜索优化公司wordpress 要多少钱
  • 湖北微网站建设多少钱android开发需要学什么
  • 服务器类网站建设网站建设好了怎么进行推广