Search in sources :

Example 1 with MessageRoutingMode

use of org.apache.pulsar.client.api.ProducerConfiguration.MessageRoutingMode in project incubator-pulsar by apache.

the class ProducerHandler method getProducerConfiguration.

private ProducerConfiguration getProducerConfiguration() {
    ProducerConfiguration conf = new ProducerConfiguration();
    // Set to false to prevent the server thread from being blocked if a lot of messages are pending.
    conf.setBlockIfQueueFull(false);
    if (queryParams.containsKey("producerName")) {
        conf.setProducerName(queryParams.get("producerName"));
    }
    if (queryParams.containsKey("initialSequenceId")) {
        conf.setInitialSequenceId(Long.parseLong("initialSequenceId"));
    }
    if (queryParams.containsKey("hashingScheme")) {
        conf.setHashingScheme(HashingScheme.valueOf(queryParams.get("hashingScheme")));
    }
    if (queryParams.containsKey("sendTimeoutMillis")) {
        conf.setSendTimeout(Integer.parseInt(queryParams.get("sendTimeoutMillis")), TimeUnit.MILLISECONDS);
    }
    if (queryParams.containsKey("batchingEnabled")) {
        conf.setBatchingEnabled(Boolean.parseBoolean(queryParams.get("batchingEnabled")));
    }
    if (queryParams.containsKey("batchingMaxMessages")) {
        conf.setBatchingMaxMessages(Integer.parseInt(queryParams.get("batchingMaxMessages")));
    }
    if (queryParams.containsKey("maxPendingMessages")) {
        conf.setMaxPendingMessages(Integer.parseInt(queryParams.get("maxPendingMessages")));
    }
    if (queryParams.containsKey("batchingMaxPublishDelay")) {
        conf.setBatchingMaxPublishDelay(Integer.parseInt(queryParams.get("batchingMaxPublishDelay")), TimeUnit.MILLISECONDS);
    }
    if (queryParams.containsKey("messageRoutingMode")) {
        checkArgument(Enums.getIfPresent(MessageRoutingMode.class, queryParams.get("messageRoutingMode")).isPresent(), "Invalid messageRoutingMode %s", queryParams.get("messageRoutingMode"));
        MessageRoutingMode routingMode = MessageRoutingMode.valueOf(queryParams.get("messageRoutingMode"));
        if (!MessageRoutingMode.CustomPartition.equals(routingMode)) {
            conf.setMessageRoutingMode(routingMode);
        }
    }
    if (queryParams.containsKey("compressionType")) {
        checkArgument(Enums.getIfPresent(CompressionType.class, queryParams.get("compressionType")).isPresent(), "Invalid compressionType %s", queryParams.get("compressionType"));
        conf.setCompressionType(CompressionType.valueOf(queryParams.get("compressionType")));
    }
    return conf;
}
Also used : MessageRoutingMode(org.apache.pulsar.client.api.ProducerConfiguration.MessageRoutingMode) ProducerConfiguration(org.apache.pulsar.client.api.ProducerConfiguration)

Aggregations

ProducerConfiguration (org.apache.pulsar.client.api.ProducerConfiguration)1 MessageRoutingMode (org.apache.pulsar.client.api.ProducerConfiguration.MessageRoutingMode)1