首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么DLT中的消息使用DeadLetterPublishingRecoverer base64编码

为什么DLT中的消息使用DeadLetterPublishingRecoverer base64编码
EN

Stack Overflow用户
提问于 2020-06-01 19:53:31
回答 1查看 298关注 0票数 0

我已经配置了一个errorHandler,它将记录发送到DLT

代码语言:javascript
复制
@Bean
    public DeadLetterPublishingRecoverer recoverer(KafkaTemplate<String, List<T>> template) {
        return new DeadLetterPublishingRecoverer(template);
    }

    @Bean
    public ErrorHandler errorHandler(DeadLetterPublishingRecoverer recoverer) {
        return new SeekToCurrentErrorHandler(recoverer, new FixedBackOff(0L, 2L));
    }

我使用这个DLT捕获由ErrorHandlingDeserializer2处理的序列化错误。

我面临的问题是DLT中的消息采用base64编码格式,而不是普通字符串。

生产者

DLT消费者

test messagedGVzdCBtZXNzYWdl的形式进入DLT

另一个问题是由于base64编码增加了请求大小。

我想让消息像DLT一样传出去。

你能不能给我指点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-01 20:34:07

显示您的生产者工厂配置。

也许你使用的是一个普通的生产者工厂?

最好的猜测是您在那里使用的是JsonSerializer而不是ByteArraySerializer

使用版本2.5,您可以覆盖每个KafkaTemplate中的生产者工厂配置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62139970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档