Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ One way to configure a Pulsar [broker](reference-terminology.md#broker) is to su

But since all broker configuration in Pulsar is stored in ZooKeeper, configuration values can also be dynamically updated *while the broker is running*. When you update broker configuration dynamically, ZooKeeper will notify the broker of the change and the broker will then override any existing configuration values.

* The [`brokers`](reference-pulsar-admin.md#brokers) command for the [`pulsar-admin`](reference-pulsar-admin) tool has a variety of subcommands that enable you to manipulate a broker's configuration dynamically, enabling you to [update config values](#update-dynamic-configuration) and more.
* The [`brokers`](reference-pulsar-admin.md#brokers) command for the [`pulsar-admin`](reference-pulsar-admin.md) tool has a variety of subcommands that enable you to manipulate a broker's configuration dynamically, enabling you to [update config values](#update-dynamic-configuration) and more.
* In the Pulsar admin {@inject: rest:REST:/} API, dynamic configuration is managed through the `/admin/v2/brokers/configuration` endpoint.

### Update dynamic configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ When provision a new cluster, you need to initialize that cluster's [metadata](c
* The web service URL for the cluster
* A broker service URL enabling interaction with the [brokers](reference-terminology.md#broker) in the cluster

You must initialize cluster metadata *before* starting up any [brokers](admin-api-brokers) that will belong to the cluster.
You must initialize cluster metadata *before* starting up any [brokers](admin-api-brokers.md) that will belong to the cluster.

> **No cluster metadata initialization through the REST API or the Java admin API**
>
Expand All @@ -113,11 +113,11 @@ bin/pulsar initialize-cluster-metadata \

```

You'll need to use `--*-tls` flags only if you're using [TLS authentication](security-tls-authentication) in your instance.
You'll need to use `--*-tls` flags only if you're using [TLS authentication](security-tls-authentication.md) in your instance.

### Get configuration

You can fetch the [configuration](reference-configuration) for an existing cluster at any time.
You can fetch the [configuration](reference-configuration.md) for an existing cluster at any time.

````mdx-code-block
<Tabs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Method | Description
---|---
**Admin CLI** | The `functions` command of the [`pulsar-admin`](/tools/pulsar-admin/) tool.
**REST API** |The `/admin/v3/functions` endpoint of the admin {@inject: rest:REST:/} API.
**Java Admin API**| The `functions` method of the `PulsarAdmin` object in the [Java API](client-libraries-java).
**Java Admin API**| The `functions` method of the `PulsarAdmin` object in the [Java API](client-libraries-java.md).

## Function resources

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1355,7 +1355,7 @@ admin.namespaces().removeDeduplicationSnapshotInterval(namespace)

### Namespace isolation

You can use the [Pulsar isolation policy](administration-isolation) to allocate resources (broker and bookie) for a namespace.
You can use the [Pulsar isolation policy](administration-isolation.md) to allocate resources (broker and bookie) for a namespace.

### Unload namespaces from a broker

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ sidebar_label: "Non-partitioned topics"
original_id: admin-api-non-partitioned-topics
---

For details of the content, refer to [manage topics](admin-api-topics).
For details of the content, refer to [manage topics](admin-api-topics.md).
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ sidebar_label: "Non-Persistent topics"
original_id: admin-api-non-persistent-topics
---

For details of the content, refer to [manage topics](admin-api-topics).
For details of the content, refer to [manage topics](admin-api-topics.md).
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ sidebar_label: "Partitioned topics"
original_id: admin-api-partitioned-topics
---

For details of the content, refer to [manage topics](admin-api-topics).
For details of the content, refer to [manage topics](admin-api-topics.md).
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ sidebar_label: "Persistent topics"
original_id: admin-api-persistent-topics
---

For details of the content, refer to [manage topics](admin-api-topics).
For details of the content, refer to [manage topics](admin-api-topics.md).
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import TabItem from '@theme/TabItem';
>
> - For the latest and complete information about `Java admin API`, including classes, methods, descriptions, and more, see [Java admin API doc](/api/admin/).

Tenants, like namespaces, can be managed using the [admin API](admin-api-overview). There are currently two configurable aspects of tenants:
Tenants, like namespaces, can be managed using the [admin API](admin-api-overview.md). There are currently two configurable aspects of tenants:

* Admin roles
* Allowed clusters
Expand Down Expand Up @@ -122,7 +122,7 @@ admin.tenants().createTenant(tenantName, tenantInfo);

### Get configuration

You can fetch the [configuration](reference-configuration) for an existing tenant at any time.
You can fetch the [configuration](reference-configuration.md) for an existing tenant at any time.

````mdx-code-block
<Tabs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1679,7 +1679,7 @@ admin.topics().removeOffloadPolicies(topic)


## Manage non-partitioned topics
You can use Pulsar [admin API](admin-api-overview) to create, delete and check status of non-partitioned topics.
You can use Pulsar [admin API](admin-api-overview.md) to create, delete and check status of non-partitioned topics.

### Create
Non-partitioned topics must be explicitly created. When creating a new non-partitioned topic, you need to provide a name for the topic.
Expand Down Expand Up @@ -1874,7 +1874,7 @@ admin.topics().getStats(topic, false /* is precise backlog */);
````

## Manage partitioned topics
You can use Pulsar [admin API](admin-api-overview) to create, update, delete and check status of partitioned topics.
You can use Pulsar [admin API](admin-api-overview.md) to create, update, delete and check status of partitioned topics.

### Create

Expand Down Expand Up @@ -2394,7 +2394,7 @@ If a message has a key, it supersedes the round robin routing policy. The follow

## Manage subscriptions

You can use [Pulsar admin API](admin-api-overview) to create, check, and delete subscriptions.
You can use [Pulsar admin API](admin-api-overview.md) to create, check, and delete subscriptions.

### Create subscription

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ $ bin/pulsar-admin clusters create \
:::tip

- If you want to use a secure connection for a cluster, you can use the flags `--broker-url-secure` and `--url-secure`. For more information, see [pulsar-admin clusters create](https://pulsar.apache.org/tools/pulsar-admin/).
- Different clusters may have different authentications. You can use the authentication flag `--auth-plugin` and `--auth-parameters` together to set cluster authentication, which overrides `brokerClientAuthenticationPlugin` and `brokerClientAuthenticationParameters` if `authenticationEnabled` sets to `true` in `broker.conf` and `standalone.conf`. For more information, see [authentication and authorization](concepts-authentication).
- Different clusters may have different authentications. You can use the authentication flag `--auth-plugin` and `--auth-parameters` together to set cluster authentication, which overrides `brokerClientAuthenticationPlugin` and `brokerClientAuthenticationParameters` if `authenticationEnabled` sets to `true` in `broker.conf` and `standalone.conf`. For more information, see [authentication and authorization](concepts-authentication.md).

:::

Expand Down Expand Up @@ -153,7 +153,7 @@ $ bin/pulsar-admin topics set-replication-clusters --clusters us-west,us-east,us

By default, messages are replicated to all clusters configured for the namespace. You can restrict replication selectively by specifying a replication list for a message, and then that message is replicated only to the subset in the replication list.

The following is an example for the [Java API](client-libraries-java). Note the use of the `setReplicationClusters` method when you construct the {@inject: javadoc:Message:/client/org/apache/pulsar/client/api/Message} object:
The following is an example for the [Java API](client-libraries-java.md). Note the use of the `setReplicationClusters` method when you construct the {@inject: javadoc:Message:/client/org/apache/pulsar/client/api/Message} object:

```java

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Pulsar Manager is a web-based GUI management and monitoring tool that helps admi

:::note

If you are monitoring your current stats with [Pulsar dashboard](administration-dashboard), we recommend you use Pulsar Manager instead. Pulsar dashboard is deprecated.
If you are monitoring your current stats with [Pulsar dashboard](administration-dashboard.md), we recommend you use Pulsar Manager instead. Pulsar dashboard is deprecated.

:::

Expand Down Expand Up @@ -87,7 +87,7 @@ jwt.broker.secret.key=file:///path/broker-secret.key
• `jwt.broker.public.key`: configure this option if you use the PUBLIC mode.
• `jwt.broker.private.key`: configure this option if you use the PRIVATE mode.
• `jwt.broker.secret.key`: configure this option if you use the SECRET mode.
For more information, see [Token Authentication Admin of Pulsar](security-token-admin).
For more information, see [Token Authentication Admin of Pulsar](security-token-admin.md).

Docker command to add profile and key files mount.

Expand Down Expand Up @@ -146,7 +146,7 @@ The request parameter in curl command:

When using binary packages for direct deployment, you can follow these steps.

- Download and unzip the binary package, which is available on the [Pulsar Download](download) page.
- Download and unzip the binary package, which is available on the [Pulsar Download](/download) page.

```bash

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ To enable batching operations, set the [`metadataStoreBatchingEnabled`](referenc

BookKeeper stores all durable message in Pulsar. BookKeeper is a distributed [write-ahead log](https://en.wikipedia.org/wiki/Write-ahead_logging) WAL system that guarantees read consistency of independent message logs calls ledgers. Individual BookKeeper servers are also called *bookies*.

> To manage message persistence, retention, and expiry in Pulsar, refer to [cookbook](cookbooks-retention-expiry).
> To manage message persistence, retention, and expiry in Pulsar, refer to [cookbook](cookbooks-retention-expiry.md).

### Hardware requirements

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ sidebar_label: "CGo(deprecated)"
original_id: client-libraries-cgo
---

> The CGo client has been deprecated since version 2.7.0. If possible, use the [Go client](client-libraries-go) instead.
> The CGo client has been deprecated since version 2.7.0. If possible, use the [Go client](client-libraries-go.md) instead.

You can use Pulsar Go client to create Pulsar [producers](#producers), [consumers](#consumers), and [readers](#readers) in Go (aka Golang).

Expand All @@ -26,7 +26,7 @@ Currently, the following Go clients are maintained in two repositories.
### Requirements

Pulsar Go client library is based on the C++ client library. Follow
the instructions for [C++ library](client-libraries-cpp) for installing the binaries through [RPM](client-libraries-cpp.md#rpm), [Deb](client-libraries-cpp.md#deb) or [Homebrew packages](client-libraries-cpp.md#macos).
the instructions for [C++ library](client-libraries-cpp.md) for installing the binaries through [RPM](client-libraries-cpp.md#rpm), [Deb](client-libraries-cpp.md#deb) or [Homebrew packages](client-libraries-cpp.md#macos).

### Install go package

Expand Down Expand Up @@ -59,7 +59,7 @@ import "github.com/apache/pulsar/pulsar-client-go/pulsar"

## Connection URLs

To connect to Pulsar using client libraries, you need to specify a [Pulsar protocol](developing-binary-protocol) URL.
To connect to Pulsar using client libraries, you need to specify a [Pulsar protocol](developing-binary-protocol.md) URL.

Pulsar protocol URLs are assigned to specific clusters, use the `pulsar` scheme and have a default port of 6650. Here's an example for `localhost`:

Expand All @@ -77,7 +77,7 @@ pulsar://pulsar.us-west.example.com:6650

```

If you're using [TLS](security-tls-authentication) authentication, the URL will look like something like this:
If you're using [TLS](security-tls-authentication.md) authentication, the URL will look like something like this:

```http

Expand Down Expand Up @@ -238,14 +238,14 @@ Parameter | Description | Default
`Topic` | The Pulsar [topic](reference-terminology.md#topic) to which the producer will publish messages |
`Name` | A name for the producer. If you don't explicitly assign a name, Pulsar will automatically generate a globally unique name that you can access later using the `Name()` method. If you choose to explicitly assign a name, it will need to be unique across *all* Pulsar clusters, otherwise the creation operation will throw an error. |
`Properties`| Attach a set of application defined properties to the producer. This properties will be visible in the topic stats |
`SendTimeout` | When publishing a message to a topic, the producer will wait for an acknowledgment from the responsible Pulsar [broker](reference-terminology.md#broker). If a message is not acknowledged within the threshold set by this parameter, an error will be thrown. If you set `SendTimeout` to -1, the timeout will be set to infinity (and thus removed). Removing the send timeout is recommended when using Pulsar's [message de-duplication](cookbooks-deduplication) feature. | 30 seconds
`SendTimeout` | When publishing a message to a topic, the producer will wait for an acknowledgment from the responsible Pulsar [broker](reference-terminology.md#broker). If a message is not acknowledged within the threshold set by this parameter, an error will be thrown. If you set `SendTimeout` to -1, the timeout will be set to infinity (and thus removed). Removing the send timeout is recommended when using Pulsar's [message de-duplication](cookbooks-deduplication.md) feature. | 30 seconds
`MaxPendingMessages` | The maximum size of the queue holding pending messages (i.e. messages waiting to receive an acknowledgment from the [broker](reference-terminology.md#broker)). By default, when the queue is full all calls to the `Send` and `SendAsync` methods will fail *unless* `BlockIfQueueFull` is set to `true`. |
`MaxPendingMessagesAcrossPartitions` | Set the number of max pending messages across all the partitions. This setting will be used to lower the max pending messages for each partition `MaxPendingMessages(int)`, if the total exceeds the configured value.|
`BlockIfQueueFull` | If set to `true`, the producer's `Send` and `SendAsync` methods will block when the outgoing message queue is full rather than failing and throwing an error (the size of that queue is dictated by the `MaxPendingMessages` parameter); if set to `false` (the default), `Send` and `SendAsync` operations will fail and throw a `ProducerQueueIsFullError` when the queue is full. | `false`
`MessageRoutingMode` | The message routing logic (for producers on [partitioned topics](concepts-architecture-overview.md#partitioned-topics)). This logic is applied only when no key is set on messages. The available options are: round robin (`pulsar.RoundRobinDistribution`, the default), publishing all messages to a single partition (`pulsar.UseSinglePartition`), or a custom partitioning scheme (`pulsar.CustomPartition`). | `pulsar.RoundRobinDistribution`
`HashingScheme` | The hashing function that determines the partition on which a particular message is published (partitioned topics only). The available options are: `pulsar.JavaStringHash` (the equivalent of `String.hashCode()` in Java), `pulsar.Murmur3_32Hash` (applies the [Murmur3](https://en.wikipedia.org/wiki/MurmurHash) hashing function), or `pulsar.BoostHash` (applies the hashing function from C++'s [Boost](https://www.boost.org/doc/libs/1_62_0/doc/html/hash.html) library) | `pulsar.JavaStringHash`
`CompressionType` | The message data compression type used by the producer. The available options are [`LZ4`](https://github.com/lz4/lz4), [`ZLIB`](https://zlib.net/), [`ZSTD`](https://facebook.github.io/zstd/) and [`SNAPPY`](https://google.github.io/snappy/). | No compression
`MessageRouter` | By default, Pulsar uses a round-robin routing scheme for [partitioned topics](cookbooks-partitioned). The `MessageRouter` parameter enables you to specify custom routing logic via a function that takes the Pulsar message and topic metadata as an argument and returns an integer (where the ), i.e. a function signature of `func(Message, TopicMetadata) int`. |
`MessageRouter` | By default, Pulsar uses a round-robin routing scheme for [partitioned topics](cookbooks-partitioned.md). The `MessageRouter` parameter enables you to specify custom routing logic via a function that takes the Pulsar message and topic metadata as an argument and returns an integer (where the ), i.e. a function signature of `func(Message, TopicMetadata) int`. |
`Batching` | Control whether automatic batching of messages is enabled for the producer. | false
`BatchingMaxPublishDelay` | Set the time period within which the messages sent will be batched (default: 1ms) if batch messages are enabled. If set to a non zero value, messages will be queued until this time interval or until | 1ms
`BatchingMaxMessages` | Set the maximum number of messages permitted in a batch. (default: 1000) If set to a value greater than 1, messages will be queued until this threshold is reached or batch interval has elapsed | 1000
Expand Down Expand Up @@ -514,7 +514,7 @@ Parameter | Description

## TLS encryption and authentication

In order to use [TLS encryption](security-tls-transport), you'll need to configure your client to do so:
In order to use [TLS encryption](security-tls-transport.md), you'll need to configure your client to do so:

* Use `pulsar+ssl` URL type
* Set `TLSTrustCertsFilePath` to the path to the TLS certs used by your client and the Pulsar broker
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -658,7 +658,7 @@ For complete examples, refer to [C++ client examples](https://github.com/apache/
## Schema

This section describes some examples about schema. For more information about
schema, see [Pulsar schema](schema-get-started).
schema, see [Pulsar schema](schema-get-started.md).

### Avro schema

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ var client = PulsarClient.Builder()

Currently, the Pulsar C# client supports the TLS (Transport Layer Security) and JWT (JSON Web Token) authentication.

If you have followed [Authentication using TLS](security-tls-authentication), you get a certificate and a key. To use them from the Pulsar C# client, follow these steps:
If you have followed [Authentication using TLS](security-tls-authentication.md), you get a certificate and a key. To use them from the Pulsar C# client, follow these steps:

1. Create an unencrypted and password-less pfx file.

Expand Down
Loading