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

改变Spring云流中的行为。使标头匹配器区分大小写

壤驷鸿
2023-03-14

我需要自定义的“Id”Kafka标题,但不需要来自SpringKafka流的“Id”标题。

受保护的静态类SimplePatternBasedHeaderMatcher在公共布尔matchHeader方法中使用toLowerCase()逻辑。

所以最后我得到了两个标头:“Id”(我的标头)和“id”(由Spring Cloud Stream提供)。

如果不需要区分大小写的标头匹配器,如何通过yaml属性重写此行为?

共有1个答案

贺佑运
2023-03-14

您不能仅在YAML中执行此操作,您必须创建一个自定义标头映射器bean并在YAML中提供它的名称。

https://docs.spring.io/spring-cloud-stream-binder-kafka/docs/3.1.3/reference/html/spring-cloud-stream-binder-kafka.html#_kafka_binder_properties

<代码>Spring。云流动Kafka。粘合剂headerMapperBeanName

KafkaHeaderMapper的bean名称,用于将spring消息头映射到Kafka头和从Kafka头映射。

 类似资料:
  • 我试图在Elasticseach 7中实现部分的、区分大小写的匹配。 我正在使用设置创建索引: 以及映射: 以下查询将正确返回文档: 但当我将搜索词小写时,它不会返回文档: 如何配置Elasticsearch,使其与使用小写搜索词的名称字段值匹配?

  • spring cloud stream如何将多个Kafka分区分配给属于同一消费者组的反应流? 我注意到,如果我使用普通的非反应流侦听器,每个线程将被分配到一个分区,这取决于使用者并发配置。然而,在流(流量输入)的情况下,我没有注意到任何这样的并行行为。似乎只定义了一个流来处理来自所有分区的消息。 我的期望是每个Kafka主题分区都有独立的流,即使在由不同线程备份的同一节点上也是如此。

  • 问题内容: 我看过每一篇文章,发现可以执行精确匹配,不区分大小写的查询,但是在实现时,它们并不能满足我的要求。 在将此问题标记为重复之前,请阅读整篇文章。 给定一个用户名,我想查询我的Elasticsearch数据库以仅返回一个与该用户名完全匹配但不区分大小写的文档。 我尝试为属性指定分析器,并使用查询来实现此行为。虽然这解决了区分大小写的匹配问题,但在精确匹配时失败了。 我考虑使用规范化程序,但

  • 如何在Java中以区分大小写的方式进行匹配?我的意思是,我想编写一个类似的regex。但是我想匹配以及等等。在Java中最简单的方法是什么?

  • 使用XPath,我想“匹配整个单词”(用户选项,就像VS搜索一样)。 似乎函数

  • 使用方法创建新资源时,将新资源的位置添加到响应中,作为标头。 如何创建一个spring云契约YML来验证响应是否包含头,并将有效的作为其值? 我试过下面的YAML,但它不工作。 生成测试代码 生成的代码不包含任何头验证。