44 lines
942 B
Go
44 lines
942 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
. "antoine-roux.tk/kafka/internal/configuration"
|
||
|
"github.com/Shopify/sarama"
|
||
|
"log"
|
||
|
_ "net/http/pprof"
|
||
|
"os"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
configuration := NewConfiguration()
|
||
|
if configuration.IsVerbose() {
|
||
|
sarama.Logger = log.New(os.Stdout, "[sarama] ", log.LstdFlags)
|
||
|
}
|
||
|
application := configuration.CreateApplication()
|
||
|
|
||
|
// producer code
|
||
|
provider := application.ProducerProvider
|
||
|
producer := provider.Borrow()
|
||
|
defer provider.Release(producer)
|
||
|
|
||
|
err := producer.BeginTxn()
|
||
|
if err != nil {
|
||
|
log.Printf("unable to start txn %s\n", err)
|
||
|
return
|
||
|
}
|
||
|
for i := 0; i < 10; i++ {
|
||
|
_, _, err := producer.SendMessage(&sarama.ProducerMessage{
|
||
|
Topic: string(application.EmitterTopic),
|
||
|
Key: nil,
|
||
|
Value: sarama.StringEncoder("test"),
|
||
|
})
|
||
|
if err != nil {
|
||
|
log.Printf("Message delivery error %s\n", err)
|
||
|
}
|
||
|
}
|
||
|
err = producer.CommitTxn()
|
||
|
if err != nil {
|
||
|
log.Printf("unable to commit txn %s\n", err)
|
||
|
return
|
||
|
}
|
||
|
}
|