Update wiki Home page for pulsar

gitea_admin 2026-03-11 14:41:53 +00:00
parent 503e85a3a0
commit e36f9de950

83
Home.md

@ -1,21 +1,76 @@
# Deploy the Project on CamelX Platform
# Pulsar
Deploy on CamelX Platform in three steps
Send and receive messages from/to Apache Pulsar messaging system.
## Step 1: Create a release
From the project space, click on **"Create a release"**
## Metadata
The new version is automatically available in the list
| Property | Value |
|----------|-------|
| Scheme | `pulsar` |
| Support Level | Stable |
| Labels | messaging |
| Version | 4.10.2 |
## Step 2: Deploy
Click on **"Deploy"**
## Maven Dependency
- **Version:** Select the desired release
- **Environment:** Choose `Development`, `Staging`, or `Production`
- **Configuration:** Select the configuration source
- **Resources:** Set CPU and Memory
```xml
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-pulsar</artifactId>
<version>4.10.2</version>
</dependency>
```
## Step 3: Expose
Enable **"Expose"**
## Endpoint Properties
Choose an **API Gateway** (Internal, Public, etc.)
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `persistence` | string | ✓ | | Whether the topic is persistent or non-persistent |
| `tenant` | string | ✓ | | The tenant |
| `namespace` | string | ✓ | | The namespace |
| `topic` | string | ✓ | | The topic |
| `authenticationClass` | string | | | The Authentication FQCN to be used while creating the client from URI |
| `authenticationParams` | string | | | The Authentication Parameters to be used while creating the client from URI |
| `serviceUrl` | string | | | The Pulsar Service URL to point while creating the client from URI |
| `ackGroupTimeMillis` | integer | | `100` | Group the consumer acknowledgments for the specified time in milliseconds - defaults to 100 |
| `ackTimeoutMillis` | integer | | `10000` | Timeout for unacknowledged messages in milliseconds - defaults to 10000 |
| `ackTimeoutRedeliveryBackoff` | object | | | RedeliveryBackoff to use for ack timeout redelivery backoff. |
| `allowManualAcknowledgement` | boolean | | `false` | Whether to allow manual message acknowledgements. If this option is enabled, then messages are not acknowledged automatically after successful route completion. Instead, an instance of PulsarMessageReceipt is stored as a header on the org.apache.camel.Exchange. Messages can then be acknowledged using PulsarMessageReceipt at any time before the ackTimeout occurs. |
| `consumerName` | string | | `sole-consumer` | Name of the consumer when subscription is EXCLUSIVE |
| `consumerNamePrefix` | string | | `cons` | Prefix to add to consumer names when a SHARED or FAILOVER subscription is used |
| `consumerQueueSize` | integer | | `10` | Size of the consumer queue - defaults to 10 |
| `deadLetterTopic` | string | | | Name of the topic where the messages which fail maxRedeliverCount times will be sent. Note: if not set, default topic name will be topicName-subscriptionName-DLQ |
| `enableRetry` | boolean | | `false` | To enable retry letter topic mode. The default retry letter topic uses this format: topicname-subscriptionname-RETRY |
| `keySharedPolicy` | string | | | Policy to use by consumer when using key-shared subscription type. |
| `maxRedeliverCount` | integer | | | Maximum number of times that a message will be redelivered before being sent to the dead letter queue. If this value is not set, no Dead Letter Policy will be created |
| `messageListener` | boolean | | `true` | Whether to use the messageListener interface, or to receive messages using a separate thread pool |
| `negativeAckRedeliveryBackoff` | object | | | RedeliveryBackoff to use for negative ack redelivery backoff. |
| `negativeAckRedeliveryDelayMicros` | integer | | `60000000` | Set the negative acknowledgement delay |
| `numberOfConsumers` | integer | | `1` | Number of consumers - defaults to 1 |
| `numberOfConsumerThreads` | integer | | `1` | Number of threads to receive and handle messages when using a separate thread pool |
| `readCompacted` | boolean | | `false` | Enable compacted topic reading. |
| `retryLetterTopic` | string | | | Name of the topic to use in retry mode. Note: if not set, default topic name will be topicName-subscriptionName-RETRY |
| `subscriptionInitialPosition` | object | | `LATEST` | Control the initial position in the topic of a newly created subscription. Default is latest message. |
| `subscriptionName` | string | | `subs` | Name of the subscription to use |
| `subscriptionTopicsMode` | object | | `PersistentOnly` | Determines to which topics this consumer should be subscribed to - Persistent, Non-Persistent, or both. Only used with pattern subscriptions. |
| `subscriptionType` | object | | `EXCLUSIVE` | Type of the subscription EXCLUSIVESHAREDFAILOVERKEY_SHARED, defaults to EXCLUSIVE |
| `topicsPattern` | boolean | | `false` | Whether the topic is a pattern (regular expression) that allows the consumer to subscribe to all matching topics in the namespace |
| `bridgeErrorHandler` | boolean | | `false` | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. Important: This is only possible if the 3rd party component allows Camel to be alerted if an exception was thrown. Some components handle this internally only, and therefore bridgeErrorHandler is not possible. In other situations we may improve the Camel component to hook into the 3rd party component and make this possible for future releases. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. |
| `exceptionHandler` | object | | | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |
| `exchangePattern` | object | | | Sets the exchange pattern when the consumer creates an exchange. |
| `batcherBuilder` | object | | `DEFAULT` | Control batching method used by the producer. |
| `batchingEnabled` | boolean | | `true` | Control whether automatic batching of messages is enabled for the producer. |
| `batchingMaxMessages` | integer | | `1000` | The maximum size to batch messages. |
| `batchingMaxPublishDelayMicros` | integer | | `1000` | The maximum time period within which the messages sent will be batched if batchingEnabled is true. |
| `blockIfQueueFull` | boolean | | `false` | Whether to block the producing thread if pending messages queue is full or to throw a ProducerQueueIsFullError |
| `chunkingEnabled` | boolean | | `false` | Control whether chunking of messages is enabled for the producer. |
| `compressionType` | object | | `NONE` | Compression type to use |
| `hashingScheme` | string | | `JavaStringHash` | Hashing function to use when choosing the partition to use for a particular message |
| `initialSequenceId` | integer | | `-1` | The first message published will have a sequence Id of initialSequenceId 1. |
| `maxPendingMessages` | integer | | `1000` | Size of the pending massages queue. When the queue is full, by default, any further sends will fail unless blockIfQueueFull=true |
| `maxPendingMessagesAcrossPartitions` | integer | | `50000` | The maximum number of pending messages for partitioned topics. The maxPendingMessages value will be reduced if (number of partitions maxPendingMessages) exceeds this value. Partitioned topics have a pending message queue for each partition. |
| `messageRouter` | object | | | Custom Message Router to use |
| `messageRoutingMode` | object | | `RoundRobinPartition` | Message Routing Mode to use |
| `producerName` | string | | | Name of the producer. If unset, lets Pulsar select a unique identifier. |
| `sendTimeoutMs` | integer | | `30000` | Send timeout in milliseconds |
| `lazyStartProducer` | boolean | | `false` | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing. |