【发布时间】:2021-04-27 01:25:09
【问题描述】:
是否可以将 Java 对象(比如说用户)发送到一个主题,该主题在 C# 中被消费并序列化为用户对象?
假设我有以下从 Java PoJo 构建的 avro 模式(字段是名称和年龄)
{
"namespace": "io.confluent.developer",
"type": "record",
"name": "User",
"fields": [
{
"name": "name",
"type": [
"null",
"string"
],
"default": null
},
{
"name": "age",
"type": [
"null",
"int"
],
"default": null
}
]
}
生成一个 User.class
然后像这样发送:
Service
@CommonsLog(topic = "Producer Logger")
@RequiredArgsConstructor
public class Producer {
@Value("${topic.name}")
private String TOPIC;
private final KafkaTemplate<String, User> kafkaTemplate;
void sendMessage(User user) {
this.kafkaTemplate.send(this.TOPIC, user.getName(), user);
log.info(String.format("Produced user -> %s", user));
}
}
我也有一个 Schema 注册表,但我不知道如何在 C# 中使用该消息并将其反序列化为具有相同字段的 User 类:
public class Users
{
public int id = 0;
public string name = string.Empty;
public Users()
{
// Constructor Statements
}
public void GetUserDetails(int uid, string uname)
{
id = uid;
uname = name;
Console.WriteLine("Id: {0}, Name: {1}", id, name);
}
public int Designation { get; set; }
public string Location { get; set; }
}
感谢您的帮助。
【问题讨论】:
标签: java c# spring-boot apache-kafka confluent-schema-registry