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

网站建设服务费的摊销期限flash 做ppt的模板下载网站有哪些

网站建设服务费的摊销期限,flash 做ppt的模板下载网站有哪些,怎么免费注册公司,做门户网站的好处丢失消息有 3 种不同的情况#xff0c;针对每一种情况有不同的解决方案。 生产者丢失消息的情况消费者丢失消息的情况Kafka 弄丢了消息 生产者丢失消息的情况 生产者(Producer) 调用send方法发送消息之后#xff0c;消息可能因为网络问题并没有发送过去。所以#xff0c;我们…丢失消息有 3 种不同的情况针对每一种情况有不同的解决方案。 生产者丢失消息的情况消费者丢失消息的情况Kafka 弄丢了消息 生产者丢失消息的情况 生产者(Producer) 调用send方法发送消息之后消息可能因为网络问题并没有发送过去。所以我们不能默认在调用 send() 方法发送消息之后消息消息发送成功了。 为了确定消息是发送成功我们要判断消息发送的结果。 但是要注意的是 Producer 使用 send() 方法发送消息实际上是异步的操作我们可以通过 get()方法获取调用结果但是这样也让它变为了同步操作示例代码如下 SendResultString, Object sendResult kafkaTemplate.send(topic, o).get(); if (sendResult.getRecordMetadata() ! null) {logger.info(生产者成功发送消息到 sendResult.getProducerRecord().topic() - sendResult.getProducerRecord().value().toString()); } 但是一般不推荐这么做可以采用为其添加回调函数的形式示例代码如下 ListenableFutureSendResultString, Object future kafkaTemplate.send(topic, o);future.addCallback(result - logger.info(生产者成功发送消息到topic:{} partition:{}的消息, result.getRecordMetadata().topic(), result.getRecordMetadata().partition()),ex - logger.error(生产者发送消失败原因{}, ex.getMessage())); 如果消息发送失败的话我们检查失败的原因之后重新发送即可 另外这里推荐为 Producer 的 retries重试次数设置一个比较合理的值一般是 3 但是为了保证消息不丢失的话一般会设置比较大一点。设置完成之后当出现网络问题之后能够自动重试消息发送避免消息丢失。另外建议还要设置重试间隔因为间隔太小的话重试的效果就不明显了网络波动一次你 3 次一下子就重试完了 消费者丢失消息的情况 我们知道消息在被追加到 Partition(分区)的时候都会分配一个特定的偏移量offset。offset 表示 Consumer 当前消费到的 Partition(分区)的所在的位置。Kafka 通过偏移量offset可以保证消息在分区内的顺序性。 当消费者拉取到了分区的某个消息之后消费者会自动提交了 offset。自动提交的话会有一个问题试想一下当消费者刚拿到这个消息准备进行真正消费的时候突然挂掉了消息实际上并没有被消费但是 offset 却被自动提交了。 这种情况的解决办法也比较粗暴我们手动关闭自动提交 offset每次在真正消费完消息之后之后再自己手动提交 offset 。但是细心的朋友一定会发现这样会带来消息被重新消费的问题。比如你刚刚消费完消息之后还没提交 offset结果自己挂掉了那么这个消息理论上就会被消费两次。 Kafka 弄丢了消息 我们知道 Kafka 为 Partition 引入了多副本Replica机制。Partition 中的多个副本之间会有一个叫做 Leader 的家伙其他副本称为 Follower。我们发送的消息会被发送到 Leader 副本然后 Follower 副本才能从 Leader 副本中拉取消息进行同步。生产者和消费者只与 Leader 副本交互。你可以理解为其他副本只是 Leader 副本的拷贝它们的存在只是为了保证消息存储的安全性。 试想一种情况假如  Leader 副本所在的 Broker 突然挂掉那么就要从 Fllower 副本重新选出一个  Leader 但是  Leader 的数据还有一些没有被 Follower 副本的同步的话就会造成消息丢失。 设置 acks all 解决办法就是我们设置  acks all。acks 是 Kafka 生产者(Producer)  很重要的一个参数。 acks 的默认值即为1代表我们的消息被leader副本接收之后就算被成功发送。当我们配置 acks all 表示只有所有 ISR 列表的副本全部收到消息时生产者才会接收到来自服务器的响应. 这种模式是最高级别的也是最安全的可以确保不止一个 Broker 接收到了消息. 该模式的延迟会很高. 设置 replication.factor 3 为了保证 Leader 副本能有 Follower 副本能同步消息我们一般会为 Topic 设置 replication.factor 3。这样就可以保证每个 Partition 至少有 3 个副本。虽然造成了数据冗余但是带来了数据的安全性。 设置 min.insync.replicas 1 一般情况下我们还需要设置 min.insync.replicas 1 这样配置代表消息至少要被写入到 2 个副本才算是被成功发送。min.insync.replicas 的默认值为 1 在实际生产中应尽量避免默认值 1。 但是为了保证整个 Kafka 服务的高可用性你需要确保 replication.factor min.insync.replicas 。为什么呢设想一下假如两者相等的话只要是有一个副本挂掉整个分区就无法正常工作了。这明显违反高可用性一般推荐设置成 replication.factor min.insync.replicas 1。 设置 unclean.leader.election.enable false Kafka 0.11.0.0 版本开始 unclean.leader.election.enable 参数的默认值由原来的 true 改为 false 我们最开始也说了我们发送的消息会被发送到 Leader 副本然后 Follower 副本才能从 Leader 副本中拉取消息进行同步。多个 Follower 副本之间的消息同步情况不一样当我们配置了 unclean.leader.election.enable false 的话当 Leader 副本发生故障时就不会从 Follower 副本中和 Leader 同步程度达不到要求的副本中选择出 Leader 这样降低了消息丢失的可能性。
http://www.pierceye.com/news/821796/

相关文章:

  • 买服务器做网站 镜像选什么网页设计用的软件
  • 内江 网站建设网站后台登录地址
  • 网站建设合同副本临沂建设局官方网站
  • 林州网站建设哪家好网站做电子链接标识申请好吗
  • 石家庄开发网站建设263企业邮箱登录邮箱
  • 青岛公司建设网站电子商务网站开发技术论文
  • 龙华网站的建设建设网站教程视频视频
  • 威海高区建设局网站品牌网站建设多少钱
  • 网站php网站空间新乡河南网站建设
  • 你第一个物流网站建设方案信诚网络公司网站
  • 企业建站什么网站好wordpress管理员后台
  • 南京网站开发价格两个wordpress共用一个数据库
  • 番禺制作网站平台柳城网站制作
  • 网站建设相关视频教程网页设计布局有哪几种方法
  • 能接做网站的活的网站上海建网站方案
  • 免费网站软件app大全飘雪影院手机免费观看免费
  • 怎么做类似淘宝的网站石家庄网络开发公司
  • 专业SEO教程网站广东省住房与城乡建设部网站
  • 360免费建站为什么注册不了雨灿网站建设
  • 益阳市建设局网站在家来料加工
  • 邵阳网站设计宠物网站 html模板
  • 网站域名以co与com有什么不同18款禁用黄a免费
  • 农村电商网站建设方案wordpress官网密码错误
  • 婚庆公司网站建设doc高端网站建设推广
  • 做房地产一级市场的看什么网站网站建建设公司和网络自建
  • 搞一个网站要多少钱长治做网站哪家好
  • 德州口碑好的网站制作公司网站运营托管咨询
  • 东阳网站建设价格广州最好的网站设计
  • 襄垣网站建设宝塔面板怎么搭建网站
  • 电影网站源码access广州网站建设排名一览表