protected void testPulsarFunctionality(String pulsarBrokerUrl) throws Exception { try ( PulsarClient client = PulsarClient.builder() .serviceUrl(pulsarBrokerUrl) .build(); Consumer consumer = client.newConsumer() .topic(TEST_TOPIC) .subscriptionName("test-subs") .subscribe(); Producer<byte[]> producer = client.newProducer() .topic(TEST_TOPIC) .create() ) { producer.send("test containers".getBytes()); CompletableFuture<Message> future = consumer.receiveAsync(); Message message = future.get(5, TimeUnit.SECONDS); assertThat(new String(message.getData())) .isEqualTo("test containers"); } }
public ContextImpl(InstanceConfig config, Logger logger, PulsarClient client, List<String> inputTopics) { this.config = config; this.logger = logger; this.currentAccumulatedMetrics = new ConcurrentHashMap<>(); this.accumulatedMetrics = new ConcurrentHashMap<>(); this.publishProducers = new HashMap<>(); this.inputTopics = inputTopics; this.topicSchema = new TopicSchema(client); this.producerBuilder = (ProducerBuilderImpl<?>) client.newProducer().blockIfQueueFull(true).enableBatching(true) .batchingMaxPublishDelay(1, TimeUnit.MILLISECONDS); if (config.getFunctionDetails().getUserConfig().isEmpty()) { userConfigs = new HashMap<>(); } else { userConfigs = new Gson().fromJson(config.getFunctionDetails().getUserConfig(), new TypeToken<Map<String, Object>>() { }.getType()); } }
private ProducerBuilder<byte[]> getProducerBuilder(PulsarClient client) { ProducerBuilder<byte[]> builder = client.newProducer() .enableBatching(false) .messageRoutingMode(MessageRoutingMode.SinglePartition);
@Override public void start() { try { client = PulsarClient.builder() .serviceUrl(serviceUrl) .build(); log.info("Successfully created pulsar client to {}", serviceUrl); producer = client.newProducer(Schema.BYTES) .topic(topic) .create(); log.info("Successfully created producer to produce updates to topic {}", topic); reader = client.newReader(Schema.BYTES) .topic(topic) .startMessageId(MessageId.earliest) .create(); log.info("Successfully created reader to replay updates from topic {}", topic); CompletableFuture<Void> endFuture = new CompletableFuture<>(); readToEnd(endFuture); endFuture.join(); } catch (PulsarClientException e) { log.error("Failed to create pulsar client to cluster at {}", serviceUrl, e); throw new RuntimeException("Failed to create pulsar client to cluster at " + serviceUrl, e); } }
@Override public void start() { this.state = State.STARTING; try { ProducerBuilder<byte[]> producerBuilder = pulsarClient.newProducer() .topic(logTopic) .producerName(fqn) .blockIfQueueFull(false) .enableBatching(true) .batchingMaxPublishDelay(10, TimeUnit.MILLISECONDS); producer = producerBuilder.create(); } catch (Exception e) { throw new RuntimeException("Error starting LogTopic Producer", e); } this.state = State.STARTED; }
Producer<byte[]> producer = client.newProducer().topic(topic).create();
ProducerBuilder<byte[]> producerBuilder = client.newProducer() // .sendTimeout(0, TimeUnit.SECONDS) //
producerBuilder = client.newProducer().enableBatching(config.producer.batchingEnabled) .batchingMaxPublishDelay(config.producer.batchingMaxPublishDelayMs, TimeUnit.MILLISECONDS) .blockIfQueueFull(config.producer.blockIfQueueFull)