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

网站设计分享网络推广平台在哪里有

网站设计分享,网络推广平台在哪里有,时代设计网 新网站,网站标签设计一、 正常工作流程 生产者发送消息到kafka集群,然后由集群发送到消费者。 但是可能中途会出现消息的丢失。下面是解决方案。 二、 生产者发送消息到Brocker丢失 1. 设置异步发送 //同步发送RecordMetadata recordMetadata kafkaProducer.send(record).get();//异…

一、 正常工作流程

        生产者发送消息到kafka集群,然后由集群发送到消费者。

        但是可能中途会出现消息的丢失。下面是解决方案。

二、 生产者发送消息到Brocker丢失

1. 设置异步发送

    //同步发送RecordMetadata recordMetadata = kafkaProducer.send(record).get();//异步发送kafkaProducer.send(record,new Callback() {@Override public void onCompletion (RecordMetadata recordMetadata, Exception e){if (e != null) {System.out.println("消息发送失败 | 记录日志");}long offset = recordMetadata.offset();int partition = recordMetadata.partition();String topic = recordMetadata.topic();}});

2.消息重试

//设置重试次数
prop.put(ProducerConfig.RETRIES_CONFIG,10);

三、消息在Brocker中存储丢失

        发送确认机制acks。消息首先Topic是key,到达Topic以后才选择分区Partition(默认就一个分区,0号分区),默认连接的就是分区的Leader节点,由leader分区同步到follower区中。

四、消费者从Brocker接收消息丢失

1.分区机制

        1. Kafka 中的分区机制指的是将每个主题划分成多个分区(Partition)。

        2. topic分区中消息只能由消费者组中的唯一一个消费者处理,不同的分区分配给不同的消费者(同一个消费者组)。

2.消费方式

        消费者默认是自动按期提交已经消费的偏移量,默认是每隔5s提交一次,如果出现重平衡的情况,可能会重复消费或丢失数据

3.那如何解决重复消费

        禁用自动提交偏移量,改为手动: 1. 同步提交。  2. 异步提交。 3. 同步+异步组合提交。

       

五、面试题

面试官:Kafka是如何保证消息不丢失?

候选人:嗯,这个保证机制很多,在发送消息到消费者接收消息,在每个阶段都有可能会丢失消息,所以我们解决的话也是从多个方面考虑:

第一个是生产者发送消息的时候,可以使用异步回调发送,如果消息发送失败,我们可以通过回调获取失败后的消息信息,可以考虑重试或记录日志,后边再做补偿都是可以的。同时在生产者这边还可以设置消息重试,有的时候是由于网络抖动的原因导致发送不成功,就可以使用重试机制来解决。

第二个在broker中消息有可能会丢失,我们可以通过kafka的复制机制来确保消息不丢失,在生产者发送消息的时候,可以设置一个acks,就是确认机制。我们可以设置参数为all,这样的话,当生产者发送消息到了分区之后,不仅仅只在leader分区保存确认,在follwer分区也会保存确认,只有当所有的副本都保存确认以后才算是成功发送了消息,所以,这样设置就很大程度了保证了消息不会在broker丢失。

第三个有可能是在消费者端丢失消息,kafka消费消息都是按照offset进行标记消费的,消费者默认是自动按期提交已经消费的偏移量,默认是每隔5s提交一次,如果出现重平衡的情况,可能会重复消费或丢失数据。我们一般都会禁用掉自动提价偏移量,改为手动提交,当消费成功以后再报告给broker消费的位置,这样就可以避免消息丢失和重复消费了。

面试官:Kafka中消息的重复消费问题如何解决的?

候选人:kafka消费消息都是按照offset进行标记消费的,消费者默认是自动按期提交已经消费的偏移量,默认是每隔5s提交一次,如果出现重平衡的情况,可能会重复消费或丢失数据。我们一般都会禁用掉自动提价偏移量,改为手动提交,当消费成功以后再报告给broker消费的位置,这样就可以避免消息丢失和重复消费了。

为了消息的幂等,我们也可以设置唯一主键来进行区分,或者是加锁,数据库的锁,或者是redis分布式锁,都能解决幂等的问题。

http://www.yayakq.cn/news/233466/

相关文章:

  • 网站对企业的重要性百度云搜索引擎 百度网盘
  • 厦门网站优化公司想自己做衣服上哪个网站学
  • 企业网站营销如何建设python入门基础教程
  • 中国著名的个人网站网络营销方案设计心得
  • 重庆网站建设小能手合肥市建设局
  • 微信网站模板免费下载苏州代做淘宝网站
  • 郑州专业的网站建设公司哪家好做网站哪种编程语言好
  • 做网站续费要多少钱邯郸网站建设选哪家
  • dedecms建网站二级建造师报名官网
  • 网站优化顺义案例网站建设中的服务器搭建方式
  • 外贸网站建设预算自动更新wordpress失败
  • 大学路网站建设做网站要注册公司吗
  • 优秀作文网站推荐传奇网页版开服
  • 南京建设网站方案wordpress默认自适应
  • 做旅游网站会遇到什么问题公司展示网站模板免费下载
  • 网站建设好如何开通做网站360推广多少钱
  • 简述商务网站建设的步骤游戏开发软件有哪些
  • 网站后台维护主要做什么表白网站制作平台
  • 网站优化改动怎么做wordpress免费资源模板
  • 学做网站医药电商网站建设
  • php手机网站模板用什么软件做楼盘微网站
  • 遵化市城乡建设规划局网站永久免费自助建站推荐
  • 2019做网站赚钱么秦皇岛网站开发公司
  • 网站建设数据库ER图怎么画做羽毛球网站
  • 滨湖网站制作福利站wordpress
  • 团工作网站建设意见合肥网站建设之4个细节要注意事项
  • 移动端漂亮网站wordpress 行距
  • 北京网站建设appwordpress怎么用啊
  • 学校网站建设措施嘉兴公司网站模板建站
  • 带询盘外贸网站源码卖菜网站应该怎么做