zoukankan      html  css  js  c++  java
  • Kafka-键的删除

    Kafka-键的删除

    如果只为每个键保留最近的一个消息,那么当需要删除某个特定键所对应的所有消息时,需要怎么做?比如一个用户不再使用我们的服务,那么完全可以把与这个用户相关的所有信息从系统中删除。

    为了彻底把一个键从系统里删除,应用程序必须发送一个包含该键且值为null的消息。清理线程发现该消息时,会先进行常规的清理,只保留值为null的消息。该消息(被称为墓碑消息)会被保留一段时间,时间长短是可配置的。在这期间,消费者可以看到这个墓碑消息,并且发现它的值已经被删除。于是,如果消费者往数据库里复制kafka的数据,当它看到这个墓碑消息时,就知道应该要把相关的用户信息从数据库里删除。在这个时间段过后,清理线程会移除这个墓碑消息,这个键也将从kafka分区里消息。重要的是,要留给消费者足够多的时间,让他看到墓碑消息,因为如果消费者离线几小时并错过了墓碑消息,就看不到这个键,也就不知道它已经从kafka里删除,从而也就不会去删除数据库里的相关数据了。

  • 相关阅读:
    Windows Terminal 配色方案说明
    Windows Terminal 美化简记
    家庭组网启用 NAS
    Eclipse使用Git检出项目
    SVN clean失败解决方法
    httpClient closeableHttpClient
    JSON字符串与Map互转
    httpclient用getStatusCode
    同一台电脑同时装jdk1.8和jdk1.7
    PL/SQL连接远程oracle数据库配置
  • 原文地址:https://www.cnblogs.com/EnzoDin/p/13263664.html
Copyright © 2011-2022 走看看