You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by zi...@apache.org on 2023/02/22 14:13:25 UTC
[pulsar-site] branch main updated: [Improve][doc] Add missing examples for java client (#430)
This is an automated email from the ASF dual-hosted git repository.
zike pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
The following commit(s) were added to refs/heads/main by this push:
new e9b358b94cf [Improve][doc] Add missing examples for java client (#430)
e9b358b94cf is described below
commit e9b358b94cf72c16f437e64d1fcf463c6ca01069
Author: Zike Yang <zi...@apache.org>
AuthorDate: Wed Feb 22 22:13:18 2023 +0800
[Improve][doc] Add missing examples for java client (#430)
### Modification
* Add missing example codes for the java client
* Remove `Configure messages` section in the producer doc because it's already covered in `Send mesasges`
Co-authored-by: Anonymitaet <50...@users.noreply.github.com>
---------
Co-authored-by: Anonymitaet <50...@users.noreply.github.com>
---
docs/client-libraries-clients.md | 29 ++++++++++++++---
docs/client-libraries-consumers.md | 65 +++++++++++++++++++++++++++++++++-----
docs/client-libraries-producers.md | 48 +++++++++++++++++-----------
3 files changed, 111 insertions(+), 31 deletions(-)
diff --git a/docs/client-libraries-clients.md b/docs/client-libraries-clients.md
index 72d8f147b79..7bdda1d5952 100644
--- a/docs/client-libraries-clients.md
+++ b/docs/client-libraries-clients.md
@@ -17,8 +17,29 @@ To ensure clients in both internal and external networks can connect to a Pulsar
The following example creates a Python client using multiple advertised listeners:
-```python
-import pulsar
-client = pulsar.Client('pulsar://localhost:6650', listener_name='external')
-```
\ No newline at end of file
+````mdx-code-block
+<Tabs groupId="lang-choice"
+ defaultValue="Java"
+ values={[{"label":"Java","value":"Java"},{"label":"Python","value":"Python"}]}>
+ <TabItem value="Java">
+
+ ```java
+ PulsarClient client = PulsarClient.builder()
+ .serviceUrl("pulsar://xxxx:6650")
+ .listenerName("external")
+ .build();
+ ```
+
+ </TabItem>
+ <TabItem value="Python">
+
+ ```python
+ import pulsar
+
+ client = pulsar.Client('pulsar://localhost:6650', listener_name='external')
+ ```
+
+ </TabItem>
+</Tabs>
+````
\ No newline at end of file
diff --git a/docs/client-libraries-consumers.md b/docs/client-libraries-consumers.md
index b46341c54f8..880e174d896 100644
--- a/docs/client-libraries-consumers.md
+++ b/docs/client-libraries-consumers.md
@@ -428,8 +428,16 @@ This example shows how a consumer unsubscribes from a topic.
````mdx-code-block
<Tabs groupId="lang-choice"
- defaultValue="C#"
- values={[{"label":"C#","value":"C#"}]}>
+ defaultValue="Java"
+ values={[{"label":"Java","value":"Java"},{"label":"C#","value":"C#"}]}>
+<TabItem value="Java">
+
+ ```java
+ consumer.unsubscribe();
+ ```
+
+ </TabItem>
+
<TabItem value="C#">
```csharp
@@ -452,8 +460,16 @@ This example shows how a consumer receives messages from a topic.
````mdx-code-block
<Tabs groupId="lang-choice"
- defaultValue="C#"
- values={[{"label":"C#","value":"C#"}]}>
+ defaultValue="Java"
+ values={[{"label":"Java","value":"Java"}, {"label":"C#","value":"C#"}]}>
+<TabItem value="Java">
+
+ ```java
+ Message message = consumer.receive();
+ ```
+
+ </TabItem>
+
<TabItem value="C#">
```csharp
@@ -471,8 +487,16 @@ This example shows how a consumer receives messages from a topic.
````mdx-code-block
<Tabs groupId="lang-choice"
- defaultValue="Go"
- values={[{"label":"Go","value":"Go"}]}>
+ defaultValue="Java"
+ values={[{"label":"Java","value":"Java"}, {"label":"Go","value":"Go"}]}>
+<TabItem value="Java">
+
+ ```java
+ consumer.receive(10, TimeUnit.SECONDS);
+ ```
+
+ </TabItem>
+
<TabItem value="Go">
@@ -599,6 +623,9 @@ Messages can be acknowledged individually or cumulatively. For details about mes
values={[{"label":"Java","value":"Java"},{"label":"C#","value":"C#"}]}>
<TabItem value="Java">
+ ```java
+ consumer.acknowledge(msg);
+ ```
</TabItem>
@@ -620,6 +647,9 @@ Messages can be acknowledged individually or cumulatively. For details about mes
values={[{"label":"Java","value":"Java"},{"label":"C#","value":"C#"}]}>
<TabItem value="Java">
+ ```java
+ consumer.acknowledgeCumulative(msg);
+ ```
</TabItem>
<TabItem value="C#">
@@ -761,8 +791,27 @@ You can avoid running a loop by blocking calls with an event-based style by usin
````mdx-code-block
<Tabs groupId="lang-choice"
- defaultValue="C++"
- values={[{"label":"C++","value":"C++"},{"label":"Go","value":"Go"}]}>
+ defaultValue="Java"
+ values={[{"label":"Java","value":"Java"},{"label":"C++","value":"C++"},{"label":"Go","value":"Go"}]}>
+<TabItem value="Java">
+
+```java
+Consumer<String> consumer = pulsarClient.newConsumer(Schema.STRING)
+ .topic("persistent://my-property/my-ns/my-topic")
+ .subscriptionName("my-subscription")
+ .messageListener((c, m) -> {
+ try {
+ c.acknowledge(m);
+ } catch (Exception e) {
+ Assert.fail("Failed to acknowledge", e);
+ }
+ })
+ .subscribe();
+```
+
+</TabItem>
+
+
<TabItem value="C++">
This example starts a subscription at the earliest offset and consumes 100 messages.
diff --git a/docs/client-libraries-producers.md b/docs/client-libraries-producers.md
index 0c472719908..9a3e4802abc 100644
--- a/docs/client-libraries-producers.md
+++ b/docs/client-libraries-producers.md
@@ -11,24 +11,44 @@ import TabItem from '@theme/TabItem';
After setting up your clients, you can explore more to start working with [producers](concepts-clients.md#producers).
+## Create the producer
-## Configure messages
+This example shows how to create a producer.
-Pulsar clients provide an interface that you can use to construct and configure messages. Here's an example message:
+````mdx-code-block
+<Tabs groupId="lang-choice"
+ defaultValue="Java"
+ values={[{"label":"Java","value":"Java"}]}>
+
+ <TabItem value="Java">
+
+ ```java
+Producer<String> producer = pulsarClient.newProducer(Schema.STRING)
+ .topic("my-topic")
+ .create();
+ ```
+
+ </TabItem>
+</Tabs>
+````
+
+## Send messages
+
+This example shows how to send messages using producers.
````mdx-code-block
<Tabs groupId="lang-choice"
defaultValue="Java"
- values={[{"label":"Java","value":"Java"},{"label":"Go","value":"Go"},{"label":"Node.js","value":"Node.js"}]}>
+ values={[{"label":"Java","value":"Java"},{"label":"Go","value":"Go"},{"label":"Node.js","value":"Node.js"},{"label":"C#","value":"C#"}]}>
<TabItem value="Java">
```java
- producer.newMessage()
- .key("my-message-key")
- .value("my-async-message".getBytes())
- .property("my-key", "my-value")
- .property("my-other-key", "my-other-value")
- .send();
+ producer.newMessage()
+ .key("my-message-key")
+ .value("my-async-message")
+ .property("my-key", "my-value")
+ .property("my-other-key", "my-other-value")
+ .send();
```
You can terminate the builder chain with `sendAsync()` and get a future return.
@@ -126,17 +146,7 @@ The following static methods are available for the message id object:
| `deserialize(Buffer)` | Deserialize a message id object from a Buffer. | `Object` |
</TabItem>
-</Tabs>
-````
-
-## Send messages
-This example shows how to send messages using producers.
-
-````mdx-code-block
-<Tabs groupId="lang-choice"
- defaultValue="C#"
- values={[{"label":"C#","value":"C#"}]}>
<TabItem value="C#">
```csharp