github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/topic/example_test.go (about) 1 package topic_test 2 3 import ( 4 "context" 5 "fmt" 6 "io" 7 "log" 8 "os" 9 10 ydb "github.com/ydb-platform/ydb-go-sdk/v3" 11 "github.com/ydb-platform/ydb-go-sdk/v3/topic/topicoptions" 12 "github.com/ydb-platform/ydb-go-sdk/v3/topic/topictypes" 13 ) 14 15 func Example_createTopic() { 16 ctx := context.TODO() 17 connectionString := os.Getenv("YDB_CONNECTION_STRING") 18 if connectionString == "" { 19 connectionString = "grpc://localhost:2136/local" 20 } 21 db, err := ydb.Open(ctx, connectionString) 22 if err != nil { 23 log.Printf("failed connect: %v", err) 24 25 return 26 } 27 defer db.Close(ctx) // cleanup resources 28 29 err = db.Topic().Create(ctx, "topic-path", 30 31 // optional 32 topicoptions.CreateWithSupportedCodecs(topictypes.CodecRaw, topictypes.CodecGzip), 33 34 // optional 35 topicoptions.CreateWithMinActivePartitions(3), 36 ) 37 if err != nil { 38 log.Printf("failed create topic: %v", err) 39 40 return 41 } 42 } 43 44 func Example_alterTopic() { 45 ctx := context.TODO() 46 connectionString := os.Getenv("YDB_CONNECTION_STRING") 47 if connectionString == "" { 48 connectionString = "grpc://localhost:2136/local" 49 } 50 db, err := ydb.Open(ctx, connectionString) 51 if err != nil { 52 log.Printf("failed connect: %v", err) 53 54 return 55 } 56 defer db.Close(ctx) // cleanup resources 57 58 err = db.Topic().Alter(ctx, "topic-path", 59 topicoptions.AlterWithAddConsumers(topictypes.Consumer{ 60 Name: "new-consumer", 61 SupportedCodecs: []topictypes.Codec{topictypes.CodecRaw, topictypes.CodecGzip}, // optional 62 }), 63 ) 64 if err != nil { 65 log.Printf("failed alter topic: %v", err) 66 67 return 68 } 69 } 70 71 func Example_describeTopic() { 72 ctx := context.TODO() 73 connectionString := os.Getenv("YDB_CONNECTION_STRING") 74 if connectionString == "" { 75 connectionString = "grpc://localhost:2136/local" 76 } 77 db, err := ydb.Open(ctx, connectionString) 78 if err != nil { 79 log.Printf("failed connect: %v", err) 80 81 return 82 } 83 defer db.Close(ctx) // cleanup resources 84 85 descResult, err := db.Topic().Describe(ctx, "topic-path") 86 if err != nil { 87 log.Printf("failed describe topic: %v", err) 88 89 return 90 } 91 fmt.Printf("describe: %#v\n", descResult) 92 } 93 94 func Example_desrcibeTopicConsumer() { 95 ctx := context.TODO() 96 connectionString := os.Getenv("YDB_CONNECTION_STRING") 97 if connectionString == "" { 98 connectionString = "grpc://localhost:2136/local" 99 } 100 db, err := ydb.Open( 101 ctx, connectionString, 102 ) 103 if err != nil { 104 log.Printf("failed connect: %v", err) 105 106 return 107 } 108 defer db.Close(ctx) // cleanup resources 109 110 descResult, err := db.Topic().DescribeTopicConsumer(ctx, "topic-path", "new-consumer") 111 if err != nil { 112 log.Printf("failed describe topic consumer: %v", err) 113 114 return 115 } 116 fmt.Printf("describe consumer: %#v\n", descResult) 117 } 118 119 func Example_dropTopic() { 120 ctx := context.TODO() 121 connectionString := os.Getenv("YDB_CONNECTION_STRING") 122 if connectionString == "" { 123 connectionString = "grpc://localhost:2136/local" 124 } 125 db, err := ydb.Open(ctx, connectionString) 126 if err != nil { 127 log.Printf("failed connect: %v", err) 128 129 return 130 } 131 defer db.Close(ctx) // cleanup resources 132 133 err = db.Topic().Drop(ctx, "topic-path") 134 if err != nil { 135 log.Printf("failed drop topic: %v", err) 136 137 return 138 } 139 } 140 141 func Example_readMessage() { 142 ctx := context.TODO() 143 connectionString := os.Getenv("YDB_CONNECTION_STRING") 144 if connectionString == "" { 145 connectionString = "grpc://localhost:2136/local" 146 } 147 db, err := ydb.Open(ctx, connectionString) 148 if err != nil { 149 log.Printf("failed connect: %v", err) 150 151 return 152 } 153 defer db.Close(ctx) // cleanup resources 154 155 reader, err := db.Topic().StartReader("consumer", topicoptions.ReadTopic("/topic/path")) 156 if err != nil { 157 fmt.Printf("failed start reader: %v", err) 158 159 return 160 } 161 162 for { 163 mess, err := reader.ReadMessage(ctx) 164 if err != nil { 165 fmt.Printf("failed start reader: %v", err) 166 167 return 168 } 169 170 content, err := io.ReadAll(mess) 171 if err != nil { 172 fmt.Printf("failed start reader: %v", err) 173 174 return 175 } 176 fmt.Println(string(content)) 177 } 178 }