Kafka Consumer-如何声明Pojo序列化密钥

时间:2019-08-07 17:59:36

标签: apache-kafka

我有一些微服务,可操纵Json对象并将kafka用作代理(数据pepelines实现...)。

service1 consume message 1 => transform it to message 2 => publish message 2
Service2 consume message 2 => transform it to message 3 => publish message 3
Service3 consume message 3 => transform it to message 4 => publish message 4

产生的消息具有序列化密钥和json值。

在我的用例中,密钥确保消息的唯一性,并传输一些有用的信息。

我正在尝试使用零码来测试消息值。

按照零代码文档,我可以在属性中指定键和值序列化器。

key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer

序列化密钥如下:

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Key {

    private String subject;
    private String source;
    private int num;
    private int tot;

}

我不确定这是否可行,因为密钥不是json而是序列化的pojo:

{
           "name": "consume_step",
           "url": "kafka-topic:demo-json1",
           "operation": "consume",
           "request": {
               "consumerLocalConfigs": {
                   "recordType": "JSON",
                   "commitSync": true,
                   "showRecordsConsumed": true,
                   "maxNoOfRetryPollsOrTimeouts": 3
               }
           },
           "assertions": {
               "size": 1,
               "records": [
                   {
"key" : { 
"num" : "1234"
},
                       "value": {
                           "name": "Nicola"
                       }
                   }
               ]
           }
       }

我需要声明消息1 2 3 4的值。每个断言将取决于关键属性。 -如何声明自定义序列化密钥并将其用作过滤器来声明值?

-这种用例可以用一个场景和四个步骤来完成吗?

0 个答案:

没有答案