Kafka 中的 Serde String[]
Serde String[] in Kafka
我是卡夫卡的新手。我正在使用商店生成器并希望将两个元素的 String[] 作为与键关联的值。我这样设置商店:
StoreBuilder<KeyValueStore<String, String>> storeBuilder=Stores.keyValueStoreBuilder(
Stores.persistentKeyValueStore(storeName),
Serdes.String(),
Serdes.String());
builder.addStateStore(storeBuilder);
当我调用将数据存入存储的方法时:
String []oldValues = store.get(v.getVessel());
我收到此错误:
Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class [Ljava.lang.String; (java.lang.String and [Ljava.lang.String; are in module java.base of loader 'bootstrap')
我应该这样设置商店:
StoreBuilder<KeyValueStore<String, String[]>>
但我不知道用什么代替 Serdes.String()
您需要定义自己的 Serializer、Deserializer 和 Serde 子类来执行此操作。
您可以简单地使用带有 JSON 反序列化的纯字符串来创建字符串数组,或 CSV
我是卡夫卡的新手。我正在使用商店生成器并希望将两个元素的 String[] 作为与键关联的值。我这样设置商店:
StoreBuilder<KeyValueStore<String, String>> storeBuilder=Stores.keyValueStoreBuilder(
Stores.persistentKeyValueStore(storeName),
Serdes.String(),
Serdes.String());
builder.addStateStore(storeBuilder);
当我调用将数据存入存储的方法时:
String []oldValues = store.get(v.getVessel());
我收到此错误:
Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class [Ljava.lang.String; (java.lang.String and [Ljava.lang.String; are in module java.base of loader 'bootstrap')
我应该这样设置商店:
StoreBuilder<KeyValueStore<String, String[]>>
但我不知道用什么代替 Serdes.String()
您需要定义自己的 Serializer、Deserializer 和 Serde 子类来执行此操作。
您可以简单地使用带有 JSON 反序列化的纯字符串来创建字符串数组,或 CSV