当前位置: 首页 > 知识库问答 >
问题:

如何将RecordInterceptor设置为ConcurrentKafkaListenerContainerFactory

董哲
2023-03-14

我使用的是Spring Kafka 2.2.7,我已经将@EnableKafka配置为kafkaListenerContainerFactory,并使用@KafkaListener消费消息,一切都按预期运行。

我想添加一个RecordInterceptor来记录所有消耗的消息,但发现很难配置它。留档指出可以在容器上设置RecordInterceptor,但我不确定如何获取容器的实例。

从版本2.2.7开始,您可以向侦听器容器添加RecordInterceptor;它将在调用允许检查或修改记录的侦听器之前被调用。

    @Bean
    public ConcurrentKafkaListenerContainerFactory<String, Bytes> kafkaListenerContainerFactory() {
        ConcurrentKafkaListenerContainerFactory<String, Bytes> factory = new ConcurrentKafkaListenerContainerFactory<>();
        factory.setConsumerFactory(createConsumerFactory());
        factory.setConcurrency(consumerCount);
        return factory;
    }

我查阅了Spring文档,但没有找到解决方案,这似乎是一件简单的事情,但也许我遗漏了一些东西。

在此方面的任何帮助都将不胜感激。

提前感谢。

共有1个答案

高明辉
2023-03-14

由于2.2.7

factory.setRecordInterceptor(new RecordInterceptor);

另一个信息记录器拦截器无法用于批处理侦听器

从版本2.2.7开始,您可以将RecordInterceptor添加到侦听器容器中;它将在调用侦听器之前被调用,允许检查或修改记录。如果拦截器返回null,则不调用侦听器。当侦听器是批处理侦听器时,不会调用拦截器。

 类似资料:
  • 问题内容: 我尝试过这种方式,但是它没有改变吗? 问题答案: 最好使用.png文件;.ico是Windows特定的。最好不要使用文件,而是使用类资源(可以包装在应用程序的jar中)。 尽管您甚至可能考虑将setIconImages用于多种尺寸的图标。

  • 我将一个字符串设置为activeElement.value,一切正常。现在,我想为activeElement.value设置一个变量,我得到了以下错误代码: 线程“main”中的异常 org.openqa.selenium.WebDriver异常:未定义患者 ID 命令持续时间或超时:66 毫秒 构建信息:版本:“2.45.0”,修订版:“5017cb8”,时间:“2015-02-26 23:59

  • 问题内容: 我想设置progressDialog的主题。要创建它,我使用以下代码: 我不能只是写 因为show()方法是静态的,并且我收到编译器警告。有没有办法使用可用的常量,例如 设置对话框主题? 我还想更改Dialog的背景并弄个圆角(我不想使用progressDialog内的progressBar进行任何更改。这里有许多教程,但是它们通常描述了如何创建扩展progressDialog类的新类

  • 如何将样式仅设置为之一(而不是自定义)?我是否必须创建2个和一个自定义ImageView,因为我必须传递样式抛出它们的?

  • 我在做一个游戏,提问和玩家通过选择四个按钮之一来回答他们。我有两门课,一门是'QuestionsandButtons',另一门是'Main'。我想从'QuestionSandButtons'类中的arraylist字符串中获取一个元素,并将其显示到'Main'类中的JButton上。 当单击'GeneralKnowledge'按钮时,我希望将arraylist项设置为JButton'Option1

  • 问题内容: 我有一个只接受字符串的方法。 但是只接受一个int。通常,这是由SWT.TOP是静态int之类的设置的。 是否可以用类似的方法调用此方法? 问题答案: 如果使用Java 7,则始终可以在字符串上使用: 说实话,我会避免使用像这样的字符串。如果我真的不得不以其他方式存储对齐状态,我将使用可能在较旧版本的Java中使用的枚举。