上一篇介绍过
Pulsar源码解析-非分区Topic的Producer底层实现原理
差别不大,主要在客户端,回到创建Producer时的代码
private <T> CompletableFuture<Producer<T>> createProducerAsync(String topic,
ProducerConfigurationData conf,
Schema<T> schema,
ProducerInterceptors interceptors) {
CompletableFuture<Producer<T>> producerCreatedFuture = new CompletableFuture<>();
getPartitionedTopicMetadata(topic).thenAccept(metadata -> {
ProducerBase<T> producer;
if (metadata.partitions > 0) {
// 分区Topic创建
producer = newPartitionedProducerImpl(topic, conf, schema, interceptors, producerCreatedFuture,
metadata);
} else {
producer = newProducerImpl(topic, -1, conf, schema, interceptors, producerCreatedFuture)

本文详细解析了Pulsar中分区Topic的Producer创建过程。与非分区Topic相比,分区Topic会根据分区数量创建相应数量的Producer实例。文章深入介绍了PartitionedProducerImpl类的构造方法及start方法,阐述了如何为每个分区创建Producer并处理创建过程中的异常。
最低0.47元/天 解锁文章
959

被折叠的 条评论
为什么被折叠?



