You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2023/03/02 13:09:03 UTC

[GitHub] [pulsar] startjava created a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

GitHub user startjava created a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

 BacklogQuota.RetentionPolicy policy = BacklogQuota.RetentionPolicy.producer_request_hold;
                BacklogQuota quota = BacklogQuota.builder()
                        .limitSize(sizeLimit)
                        .limitTime(timeLimit)
                        .retentionPolicy(policy)
                        .build();
                admin.namespaces().setBacklogQuota(myTenant + "/" + myNameSpace3, quota);

GitHub link: https://github.com/apache/pulsar/discussions/19695

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a comment on the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a comment on the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

@momo-jun 
source comment:
        /** Policy which holds producer's send request until the resource becomes available (or holding times out). */
        producer_request_hold,

but i run my demo result effect diff。

so , That's what the document says:
(1)Policy which holds producer's send request until the resource becomes available 
(2)if Producer's sendTimeout() method is reach times out ,again send message show TimeoutException
??

GitHub link: https://github.com/apache/pulsar/discussions/19695#discussioncomment-5186838

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

```
                // long sizeLimit = 2147483648L;/
                long sizeLimit = 50000L;// 50KB
                int timeLimit = -1;/
                BacklogQuota.RetentionPolicy policy = BacklogQuota.RetentionPolicy.producer_request_hold;
                BacklogQuota quota = BacklogQuota.builder()
                        .limitSize(sizeLimit)
                        .limitTime(timeLimit)
                        .retentionPolicy(policy)
                        .build();
                admin.namespaces().setBacklogQuota(myTenant + "/" + myNameSpace3, quota);
```

```
    @Bean("producer6")
    public Producer createProducer6_myTopic6() throws PulsarClientException {
        Producer<String> stringProducer = pulsarClient.newProducer(Schema.STRING)
                .topic(myTopic6)
                .sendTimeout(10, TimeUnit.SECONDS)
                .create();
        return stringProducer;
    }
```

```
public class MyMessageListener6 implements MessageListener {
    @Override
    public void received(Consumer consumer, Message msg) {
        System.out.println("MyMessageListener6消费的消息:" + new String(msg.getData()));
        // 不执行ACK操作
        // consumer.acknowledge(msg);
    }
}
```

GitHub link: https://github.com/apache/pulsar/discussions/19695

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] momo-jun added a comment to the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user momo-jun added a comment to the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

@startjava To my best understanding, when the holding timeout is reached, it's correct for producers to send messages.
@zymap can you pls take a look at this question? Does the holding timeout has the assumption of the resource availability?

GitHub link: https://github.com/apache/pulsar/discussions/19695#discussioncomment-5222584

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava added a comment to the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava added a comment to the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

doc:
        /** Policy which holds producer's send request until the resource becomes available (or holding times out). */
        producer_request_hold,

the "olding times out" representative what time out ??

producer sendtimeout ?? or other ?


GitHub link: https://github.com/apache/pulsar/discussions/19695#discussioncomment-5184854

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

```
                // long sizeLimit = 2147483648L;/
                long sizeLimit = 50000L;// 50KB
                int timeLimit = -1;/
                BacklogQuota.RetentionPolicy policy = BacklogQuota.RetentionPolicy.producer_request_hold;
                BacklogQuota quota = BacklogQuota.builder()
                        .limitSize(sizeLimit)
                        .limitTime(timeLimit)
                        .retentionPolicy(policy)
                        .build();
                admin.namespaces().setBacklogQuota(myTenant + "/" + myNameSpace3, quota);
```

```
    @Bean("producer6")
    public Producer createProducer6_myTopic6() throws PulsarClientException {
        Producer<String> stringProducer = pulsarClient.newProducer(Schema.STRING)
                .topic(myTopic6)
                .sendTimeout(10, TimeUnit.SECONDS)
                .create();
        return stringProducer;
    }
```

```
public class MyMessageListener6 implements MessageListener {
    @Override
    public void received(Consumer consumer, Message msg) {
        System.out.println("MyMessageListener6:" + new String(msg.getData()));
        // consumer.acknowledge(msg);
    }
}
```

GitHub link: https://github.com/apache/pulsar/discussions/19695

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

                // long sizeLimit = 2147483648L;/
                long sizeLimit = 50000L;// 50KB
                int timeLimit = -1;/
                BacklogQuota.RetentionPolicy policy = BacklogQuota.RetentionPolicy.producer_request_hold;
                BacklogQuota quota = BacklogQuota.builder()
                        .limitSize(sizeLimit)
                        .limitTime(timeLimit)
                        .retentionPolicy(policy)
                        .build();
                admin.namespaces().setBacklogQuota(myTenant + "/" + myNameSpace3, quota);

GitHub link: https://github.com/apache/pulsar/discussions/19695

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

```
                // long sizeLimit = 2147483648L;/
                long sizeLimit = 50000L;// 50KB
                int timeLimit = -1;/
                BacklogQuota.RetentionPolicy policy = BacklogQuota.RetentionPolicy.producer_request_hold;
                BacklogQuota quota = BacklogQuota.builder()
                        .limitSize(sizeLimit)
                        .limitTime(timeLimit)
                        .retentionPolicy(policy)
                        .build();
                admin.namespaces().setBacklogQuota(myTenant + "/" + myNameSpace3, quota);
```

```
    @Bean("producer6")
    public Producer createProducer6_myTopic6() throws PulsarClientException {
        Producer<String> stringProducer = pulsarClient.newProducer(Schema.STRING)
                .topic(myTopic6)
                .sendTimeout(10, TimeUnit.SECONDS)
                .create();
        return stringProducer;
    }
```

GitHub link: https://github.com/apache/pulsar/discussions/19695

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a comment on the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a comment on the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

@momo-jun 
source comment:
        /** Policy which holds producer's send request until the resource becomes available (or holding times out). */
        producer_request_hold,

but i run my demo result effect diff。

so , That's what the document says:
(1)Policy which holds producer's send request until the resource becomes available 
(2)if times out ,again send message show TimeoutException
??

GitHub link: https://github.com/apache/pulsar/discussions/19695#discussioncomment-5186838

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava added a comment to the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava added a comment to the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

but doc :
https://pulsar.apache.org/docs/2.11.x/cookbooks-retention-expiry/#backlog-quotas
say :
The producer holds the message and retris until client configuration sendTimeoutMs is exceeded.

GitHub link: https://github.com/apache/pulsar/discussions/19695#discussioncomment-5178619

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a comment on the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a comment on the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

@momo-jun 
source comment:
        /** Policy which holds producer's send request until the resource becomes available (or holding times out). */
        producer_request_hold,

but i run my demo result effect diff。

so , That's what the document says:
(1)Policy which holds producer's send request until the resource becomes available 
(2)times out ,send message show TimeoutException
??

GitHub link: https://github.com/apache/pulsar/discussions/19695#discussioncomment-5186838

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a comment on the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a comment on the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

doc:
        /** Policy which holds producer's send request until the resource becomes available (or holding times out). */
        producer_request_hold,

the "holding times out" representative what time out ??

producer sendtimeout ?? or other ?


GitHub link: https://github.com/apache/pulsar/discussions/19695#discussioncomment-5184854

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava added a comment to the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava added a comment to the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

@merlimat @tisonkun 

GitHub link: https://github.com/apache/pulsar/discussions/19695#discussioncomment-5184865

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

```
                // long sizeLimit = 2147483648L;/
                long sizeLimit = 50000L;// 50KB
                int timeLimit = -1;/
                BacklogQuota.RetentionPolicy policy = BacklogQuota.RetentionPolicy.producer_request_hold;
                BacklogQuota quota = BacklogQuota.builder()
                        .limitSize(sizeLimit)
                        .limitTime(timeLimit)
                        .retentionPolicy(policy)
                        .build();
                admin.namespaces().setBacklogQuota(myTenant + "/" + myNameSpace3, quota);
```

```
    @Bean("producer6")
    public Producer createProducer6_myTopic6() throws PulsarClientException {
        Producer<String> stringProducer = pulsarClient.newProducer(Schema.STRING)
                .topic(myTopic6)
                .sendTimeout(10, TimeUnit.SECONDS)
                .create();
        return stringProducer;
    }
```

```
public class MyMessageListener6 implements MessageListener {
    @Override
    public void received(Consumer consumer, Message msg) {
        System.out.println("MyMessageListener6:" + new String(msg.getData()));
        // consumer.acknowledge(msg);
    }
}
```

always print:

ERROR 1384 --- [r-client-io-8-1] o.a.pulsar.client.impl.ProducerImpl      : [persistent://my-tenant/my-namespace3/my-topic6] [standalone-463-5] Failed to create producer: {"errorMsg":"org.apache.pulsar.broker.service.BrokerServiceException$TopicBacklogQuotaExceededException: Cannot create producer on topic with backlog quota exceeded","reqId":3015334629871480640, "remote":"/192.168.2.24:6650", "local":"/192.168.2.12:51773"}


GitHub link: https://github.com/apache/pulsar/discussions/19695

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

```
                // long sizeLimit = 2147483648L;/
                long sizeLimit = 50000L;// 50KB
                int timeLimit = -1;/
                BacklogQuota.RetentionPolicy policy = BacklogQuota.RetentionPolicy.producer_request_hold;
                BacklogQuota quota = BacklogQuota.builder()
                        .limitSize(sizeLimit)
                        .limitTime(timeLimit)
                        .retentionPolicy(policy)
                        .build();
                admin.namespaces().setBacklogQuota(myTenant + "/" + myNameSpace3, quota);
```

```
    @Bean("producer6")
    public Producer createProducer6_myTopic6() throws PulsarClientException {
        Producer<String> stringProducer = pulsarClient.newProducer(Schema.STRING)
                .topic(myTopic6)
                .sendTimeout(10, TimeUnit.SECONDS)
                .create();
        return stringProducer;
    }
```

```
public class MyMessageListener6 implements MessageListener {
    @Override
    public void received(Consumer consumer, Message msg) {
        System.out.println("MyMessageListener6:" + new String(msg.getData()));
        // consumer.acknowledge(msg);
    }
}
```

always print:

`ERROR 1384 --- [r-client-io-8-1] o.a.pulsar.client.impl.ProducerImpl      : [persistent://my-tenant/my-namespace3/my-topic6] [standalone-463-5] Failed to create producer: {"errorMsg":"org.apache.pulsar.broker.service.BrokerServiceException$TopicBacklogQuotaExceededException: Cannot create producer on topic with backlog quota exceeded","reqId":3015334629871480640, "remote":"/192.168.2.24:6650", "local":"/192.168.2.12:51773"}`


GitHub link: https://github.com/apache/pulsar/discussions/19695

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava edited a comment on the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava edited a comment on the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

@merlimat @tisonkun @MarvinCai 

GitHub link: https://github.com/apache/pulsar/discussions/19695#discussioncomment-5184865

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org


[GitHub] [pulsar] startjava added a comment to the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

Posted by GitBox <gi...@apache.org>.
GitHub user startjava added a comment to the discussion: use "BacklogQuota.RetentionPolicy.producer_request_hold;",sendTimeout exceeded(no ack) ,but producer always retry send message!

@momo-jun 
doc:
producer_request_hold | The producer holds the message and retris until client configuration sendTimeoutMs is exceeded.

but i run my demo result effect diff。

GitHub link: https://github.com/apache/pulsar/discussions/19695#discussioncomment-5186838

----
This is an automatically sent email for commits@pulsar.apache.org.
To unsubscribe, please send an email to: commits-unsubscribe@pulsar.apache.org