自定义PulsarSerializationSchema
PulsarSink<MsDTO> pulsarSink = PulsarSink.builder()
.setTopics()
.setServiceUrl(serviceUrl)
.setDeliveryGuarantee(DeliveryGuarantee.AT_LEAST_ONCE)
.setSerializationSchema(new PulsarSerializationSchema<MsDTO>() {
@Override
public PulsarMessage<?> serialize(MsDTO element, PulsarSinkContext sinkContext) {
return PulsarMessage.builder(ObjectUtil.serialize(element))
// 指定key
.key(String.valueOf(element.hashCode()))
// 指定orderingKey
.orderingKey(new byte[]{1,2,3})
.build();
}
}).build();
stream.sinkTo(pulsarSink);
也可以指定Schema, 如希望以JSON格式发送
PulsarSink<MsDTO> pulsarSink = PulsarSink.builder()
.setTopics()
.setServiceUrl(serviceUrl)
.setDeliveryGuarantee(DeliveryGuarantee.AT_LEAST_ONCE)
.setSerializationSchema(new PulsarSerializationSchema<MsDTO>() {
@Override
public PulsarMessage<?> serialize(MsDTO element, PulsarSinkContext sinkContext) {
return PulsarMessage.builder(Schema.JSON(MsDTO.class) , element)
// 指定key
.key(String.valueOf(element.hashCode()))
// 指定orderingKey
.orderingKey(new byte[]{1,2,3})
.build();
}
}).build();
stream.sinkTo(pulsarSink);