apache / apache/pulsar-client-go
Reader can not read next coming messages when start with LatestMessageID
- Dominant language
- Go
- Stars
- 745
- Forks
- 389
- Avg merge
- 3d 20h
- Merged PRs (30d)
- 3
Description
#### Expected behavior
It should be able to receive messages where published afterward, Message payload should be printed.
#### Actual behavior
Nothing received by reader, seems no message being published.
#### Steps to reproduce
```go
package main
import (
"context"
"fmt"
"github.com/apache/pulsar-client-go/pulsar"
"log"
"os"
)
func main() {
client, err := pulsar.NewClient(pulsar.ClientOptions{
URL: "pulsar://localhost:6650",
})
if err != nil {
log.Fatal(err)
}
defer client.Close()
reader, err := client.CreateReader(pulsar.ReaderOptions{
Topic: "my-topic",
StartMessageID: pulsar.LatestMessageID(),
})
if err != nil {
fmt.Fprintln(os.Stderr, "error creating reader for topic", err)
os.Exit(1)
}
defer reader.Close()
producer, err := client.CreateProducer(pulsar.ProducerOptions{
Topic: "my-topic",
})
if err != nil {
log.Fatal(err)
}
defer producer.Close()
for i := 0; i < 100; i++ {
_, err = producer.Send(context.Background(), &pulsar.ProducerMessage{
Payload: []byte{byte(i)},
})
if err != nil {
log.Fatal(err)
}
}
for {
if reader.HasNext() {
msg, err := reader.Next(context.Background())
if err != nil {
fmt.Fprintln(os.Stderr, "error reading message", err)
os.Exit(1)
}
fmt.Fprintln(os.Stdout, "Message payload: ", msg.Payload())
} else {
break
}
}
}
```
#### System configuration
**Pulsar version**: x.y
- pulsar:2.7.1
Contributor guide
Assessment
This issue has not been assessed yet.