Skip to content

Commit 191e0ac

Browse files
aultimusMatthew Ault
and
Matthew Ault
authored
correct kafka create-topics docs (#546)
* correct kafka create-topics docs * README.md: create topic via controller * update docs to reflect auto.create.topics.enable setting Co-authored-by: Matthew Ault <[email protected]>
1 parent 9f941bd commit 191e0ac

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

README.md

+26-3
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,39 @@ if err := conn.Close(); err != nil {
101101
```
102102

103103
### To Create Topics
104+
By default kafka has the `auto.create.topics.enable='true'` (`KAFKA_AUTO_CREATE_TOPICS_ENABLE='true'` in the wurstmeister/kafka kafka docker image). If this value is set to `'true'` then topics will be created as a side effect of `kafka.DialLeader` like so:
104105
```go
105-
// to create topics
106+
// to create topics when auto.create.topics.enable='true'
107+
conn, err := kafka.DialLeader(context.Background(), "tcp", "localhost:9092", "my-topic", 0)
108+
if err != nil {
109+
panic(err.Error())
110+
}
111+
```
112+
113+
If `auto.create.topics.enable='false'` then you will need to create topics explicitly like so:
114+
```go
115+
// to create topics when auto.create.topics.enable='false'
106116
topic := "my-topic"
107117
partition := 0
108118

109-
conn, err := kafka.DialLeader(context.Background(), "tcp", "localhost:9092", topic, partition)
119+
conn, err := kafka.Dial("tcp", "localhost:9092")
110120
if err != nil {
111121
panic(err.Error())
112122
}
113123
defer conn.Close()
124+
125+
controller, err := conn.Controller()
126+
if err != nil {
127+
panic(err.Error())
128+
}
129+
var controllerConn *kafka.Conn
130+
controllerConn, err = kafka.Dial("tcp", net.JoinHostPort(controller.Host, strconv.Itoa(controller.Port)))
131+
if err != nil {
132+
panic(err.Error())
133+
}
134+
defer controllerConn.Close()
135+
136+
114137
topicConfigs := []kafka.TopicConfig{
115138
kafka.TopicConfig{
116139
Topic: topic,
@@ -119,7 +142,7 @@ topicConfigs := []kafka.TopicConfig{
119142
},
120143
}
121144

122-
err = conn.CreateTopics(topicConfigs...)
145+
err = controllerConn.CreateTopics(topicConfigs...)
123146
if err != nil {
124147
panic(err.Error())
125148
}

0 commit comments

Comments
 (0)