Documentation ¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Message ¶
type Message = topicwriterinternal.Message
type Partitioning ¶
type Partitioning = topicwriterinternal.PublicPartitioning
type Writer ¶
type Writer struct {
// contains filtered or unexported fields
}
Writer represent write session to topic It handles connection problems, reconnect to server when need and resend buffered messages
func NewWriter ¶
func NewWriter(writer *topicwriterinternal.Writer) *Writer
func (*Writer) Write ¶
Write send messages to topic return fast in async mode (default) and wait ack from server in sync mode. see topicoptions.WithSyncWrite
The method will wait first initial connection even for async mode, that mean first write may be slower. especially when connection has problems.
ctx cancelation mean cancel of wait ack only, it will not cancel of send messages
Experimental ¶
Notice: This API is EXPERIMENTAL and may be changed or removed in a later release.
Example ¶
ctx := context.Background() db, err := ydb.Open(ctx, os.Getenv("YDB_CONNECTION_STRING")) if err != nil { log.Fatalf("failed ydb connection: %v", err) } writer, err := db.Topic().StartWriter("producer-id", "topicName", topicoptions.WithWriterCompressorCount(1), ) if err != nil { log.Fatalf("failed to create topic writer: %v", err) } err = writer.Write(ctx, topicwriter.Message{Data: strings.NewReader("1")}, topicwriter.Message{Data: strings.NewReader("2")}, topicwriter.Message{Data: strings.NewReader("3")}, ) if err == nil { fmt.Println("OK") } else { log.Fatalf("failed write to stream") }
Output:
Click to show internal directories.
Click to hide internal directories.