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

是否可以用spring cloud stream API聚合字符串的对象instad?

卜季萌
2023-03-14

我想使用spring cloud stream api聚合来自主题的事件。因此,我使用kstream作为输入。

KStream<Object, LoggerCreatedMessage>

现在我想使用聚合器将我的新对象存储在KeyValue存储区中,所以我使用以下代码:

input
  .map((key, value) -> {
    return new KeyValue<>(value.logger_id,value);
  })
  /*.groupBy(
    (s, loggerEvent) -> loggerEvent.logger_id,
    Serialized.with(null, loggerEventSerde))*/
  .groupByKey()
  .aggregate(
    String::new,
    (s, loggerEvent, vr) -> {
      return vr;
    },
    Materialized.<String, String, KeyValueStore<Bytes, byte[]>>as(STORE_NAME).withKeySerde(Serdes.String()).
      withValueSerde(Serdes.String())
  );

为什么我只能使用字符串作为初始值设定项,不可能使用任何对象?

我错过什么了吗?

共有1个答案

简俊楚
2023-03-14

通过物化将 定义为 > --如果您的值类型应该是LoggerDomain,那么它应该是物化。 >()

注意,您需要为loggerdomain提供自定义的serde,对于这种情况,还需要为物化提供自定义的loggerdomain

 类似资料:
  • 问题内容: 阅读了SCJP Tip Line的作者Corey McGlone在javaranch网站上的文章后,我都感到困惑。从字面上看是Strings,由Kathy Sierra(javaranch的联合创始人)和Bert Bates共同编写的《 SCJP Java 6程序员指南》。 我将尝试引用Corey先生和Kathy Sierra女士对String Literal Pool的引用。 1.根

  • 我通过将字符串转换为BSON来进行MongoDB查找。在进行转换之前,是否有办法确定我拥有的字符串是否是Mongo的有效ObjectID? 下面是我当前findByID函数的coffeescript。它工作得很好,但是如果我确定字符串不是ID,我希望通过不同的属性进行查找。

  • 我想解析一些JSON,但一个键要么是字符串,要么是对象。 这是我当前的结构:https://github.com/PhillippOhlandt/pmtoapib/blob/master/CollectionItemRequest.go#L10 在这里,“Url”属性不仅可以是字符串,还可以是对象。 我开始为它创建一个自己的结构,覆盖对象案例。 但是这样字符串版本就不行了。有没有一种方法既能处理这

  • Gamma等人所说的设计模式 考虑对象聚合和熟悉之间的区别,以及它们在编译和运行时的表现方式。 聚合意味着一个对象拥有或负责另一个对象。一般来说,我们所说的一个物体具有或是另一个物体的一部分。聚合意味着聚合对象及其所有者具有相同的生存期。 熟人关系意味着一个对象仅仅知道另一个对象。有时熟人关系被称为“关联”或“使用”关系。熟人对象可能会请求彼此的操作,但它们并不对彼此负责。熟人关系比聚合关系弱,表

  • 问题内容: 我必须知道是String还是任何其他类类型,该怎么办?目前,我像下面那样做,但是它的编码不是很好。 问题答案: 是如果对象是或的子类 是仅当对象是一个

  • 问题内容: 我有这样的查询(简体): 我从Java执行此查询,我想将其映射到我的课程上,但是我不希望将’_id’映射到’name’字段上。因为如果我做这样的事情: 然后,当我将数据保存回mongo(经过一些修改)后,我希望生成一个真实的ID时,数据将以名称’_id’保存。 那么,如何在$ group操作之后重命名“ _id”? 问题答案: 您可以通过 在管道的末尾添加一个阶段来实现此目的,如下所示