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

做分销微商城网站乐清企业

做分销微商城网站,乐清企业,山东网站建设公司电话,wordpress多站点分别部署深入解析Kafka消息传递的可靠性保证机制 Kafka在设计上提供了不同层次的消息传递保证#xff0c;包括at most once#xff08;至多一次#xff09;、at least once#xff08;至少一次#xff09;和exactly once#xff08;精确一次#xff09;。每种保证通过不同的机制…深入解析Kafka消息传递的可靠性保证机制 Kafka在设计上提供了不同层次的消息传递保证包括at most once至多一次、at least once至少一次和exactly once精确一次。每种保证通过不同的机制实现下面详细介绍Kafka如何实现这些消息传递保证。 1. At Most Once至多一次 在这种模式下消息可能会丢失但不会被重复传递。这通常发生在消费者在处理消息之前提交了偏移量导致即使消息处理失败也认为已经处理完成。 实现机制 消费者配置enable.auto.committrue并且默认提交偏移量的时间间隔较短auto.commit.interval.ms。消费者在处理消息之前提交偏移量处理过程中如果发生故障消息不会被重新处理。 2. At Least Once至少一次 在这种模式下消息不会丢失但可能会被重复传递。消费者确保在处理消息后才提交偏移量故障恢复后会重新处理未提交偏移量的消息。 实现机制 消费者配置enable.auto.commitfalse手动提交偏移量。消费者在处理完每条消息后调用consumer.commitSync()或consumer.commitAsync()提交偏移量。 示例代码 Properties props new Properties(); props.put(bootstrap.servers, your_kafka_broker:9092); props.put(group.id, test_group); props.put(enable.auto.commit, false); props.put(key.deserializer, org.apache.kafka.common.serialization.StringDeserializer); props.put(value.deserializer, org.apache.kafka.common.serialization.StringDeserializer);KafkaConsumerString, String consumer new KafkaConsumer(props); consumer.subscribe(Arrays.asList(your_topic));try {while (true) {ConsumerRecordsString, String records consumer.poll(Duration.ofMillis(100));for (ConsumerRecordString, String record : records) {// 处理消息}consumer.commitSync(); // 确保消息处理后提交偏移量} } finally {consumer.close(); }3. Exactly Once精确一次 在这种模式下消息既不会丢失也不会重复传递。Kafka通过引入幂等性生产者和事务性API来实现这种保证。 实现机制 幂等性生产者确保生产者在重试发送时不会产生重复消息。通过配置enable.idempotencetrue启用幂等性。事务性生产者和消费者确保在生产和消费过程中可以使用事务使消息的生产和消费操作要么全部成功要么全部失败。 配置幂等性生产者 Properties props new Properties(); props.put(bootstrap.servers, your_kafka_broker:9092); props.put(acks, all); props.put(retries, Integer.MAX_VALUE); props.put(enable.idempotence, true); props.put(key.serializer, org.apache.kafka.common.serialization.StringSerializer); props.put(value.serializer, org.apache.kafka.common.serialization.StringSerializer);KafkaProducerString, String producer new KafkaProducer(props);使用事务性生产者和消费者 // 配置事务性生产者 Properties props new Properties(); props.put(bootstrap.servers, your_kafka_broker:9092); props.put(acks, all); props.put(retries, Integer.MAX_VALUE); props.put(enable.idempotence, true); props.put(transactional.id, my-transactional-id); // 唯一的事务ID props.put(key.serializer, org.apache.kafka.common.serialization.StringSerializer); props.put(value.serializer, org.apache.kafka.common.serialization.StringSerializer);KafkaProducerString, String producer new KafkaProducer(props); producer.initTransactions(); // 初始化事务try {producer.beginTransaction(); // 开始事务producer.send(new ProducerRecord(your_topic, key, value));// 其他的发送操作producer.commitTransaction(); // 提交事务 } catch (ProducerFencedException | OutOfOrderSequenceException | AuthorizationException e) {producer.close(); } catch (KafkaException e) {producer.abortTransaction(); // 中止事务producer.close(); }在消费者端可以使用Kafka Streams API或者事务性消费模式确保精确一次语义。 总结 Kafka提供了不同层次的消息传递保证通过合适的配置和使用模式用户可以根据应用需求选择合适的保证模式 At Most Once适用于对数据丢失不敏感的应用。At Least Once适用于不能接受数据丢失但可以接受重复数据的应用。Exactly Once适用于对数据一致性要求非常高的应用。 通过合理配置生产者、消费者和broker可以在不同场景下实现合适的消息传递保证。
http://www.hkea.cn/news/14499013/

相关文章:

  • 石家庄网站建设是什么意思如何做好wordpress
  • 新建网站站点的wordpress腾讯微博插件
  • 如何提高网站文章收录南宁网站排名优化电话
  • 安徽住房建设厅网站做网站和做app的区别
  • 电信专线可以做网站吗工程网站模板制作教程
  • 创建网站需要哪些步骤网页制作模板和库教案
  • 网站建设和程序开发哪个好河北网页制作
  • 毕业设计做购物网站商标logo设计公司
  • 常州做网上废品收购网站网站建设制作多少钱
  • 网站的建设 想法东莞建站模板源码
  • 做网站 怎么赚钱如何选择一个好的网站建设公司
  • 免费个人网站模版下载网站建设之织梦后台熊掌号主页
  • 网站建设的目的及功能wordpress与cms
  • 深圳网站设计兴田德润i优惠吗网站建设 小程序制作
  • 永济微网站建设费用建设通官方网站下载e航
  • 做网站时如何建立栅格网站开发估价
  • 网站改版不换域名怎么做四川网站建设免费咨询
  • 网站后台怎么上传文章什么是企业网站pv
  • dedecms 股票网站模板装修网名
  • 亲子网 网站正在建设中wordpress创建数据库类型选什么
  • 做企业网站为什么要服务器呢app官网入口
  • 网站提示风险wordpress 漂亮的博客
  • 做设计兼职的网站有哪些工作内容wordpress主题生成器
  • dw php网站建设视频教程扁平化设计 网站
  • 做外国网站怎么买空间网站移动端开发公司
  • 商务网站页面设计技术手机网站建站APP
  • 怎么做装修网站临沂招聘信息最新招聘
  • 赣州做网站公司哪家好七牛做网站
  • 火龙果写作网站wordpress推送到公众号
  • ps做网站视图大小毕业设计做音乐网站可以吗