我有多个生产者写入单个主题,该主题是策略中定义的默认主题,是否可以在不更改默认主题的情况下创建新主题?换句话说,一个生产者可以同时登录多个主题吗?
答案 0 :(得分:2)
换句话说,一个生产者可以同时登录多个主题吗?
是的,一个制作人可以制作多个主题。主题与制作人之间的关系不是一对一的。
示例:
producer.send(new ProducerRecord<String, String>("my-topic", "key", "val"));
send()
方法采用包含主题名称的ProducerRecord
。因此,我们可以为每个send()
调用指定不同的主题名称。
但是,key.serializer
和value.serializer
很重要。每个制作人(而不是每个主题)仅指定一个key.serializer
和一个value.serializer
。
在这种情况下,您所有的主题消息都只能使用这些序列化程序进行序列化。
如果要支持不同的对象,请编写一个对所有对象都通用的自定义序列化程序(也许是Json序列化程序),或将对象转换为序列化程序可以序列化的格式(例如{{1} } String
,StringSerializer
byte[]
等