From 4f80c6535dddf9b86727defbe704ba87b7cfb0e7 Mon Sep 17 00:00:00 2001
From: Seok Won <ikr@kakao.com>
Date: Sat, 12 Dec 2020 17:11:19 +0900
Subject: [PATCH] Create Simple Producer in Golang

go get -u "github.com/segmentio/kafka-go"
---
 go/src/basic_producer/BasicProducer.go | 38 ++++++++++++++++++++++++++
 python/src/AjouSlackProducer.py        |  2 +-
 2 files changed, 39 insertions(+), 1 deletion(-)
 create mode 100644 go/src/basic_producer/BasicProducer.go

diff --git a/go/src/basic_producer/BasicProducer.go b/go/src/basic_producer/BasicProducer.go
new file mode 100644
index 0000000..f538398
--- /dev/null
+++ b/go/src/basic_producer/BasicProducer.go
@@ -0,0 +1,38 @@
+package main
+
+import (
+	"context"
+	"fmt"
+
+	kafka "github.com/segmentio/kafka-go"
+)
+
+func getKafkaWriter(kafkaURL, topic string) *kafka.Writer {
+	return &kafka.Writer{
+		Addr:     kafka.TCP(kafkaURL),
+		Topic:    topic,
+		Balancer: &kafka.LeastBytes{},
+	}
+}
+
+func main() {
+	// get kafka writer using environment variables.
+	kafkaURL := "localhost:9092"
+	topic := "first-topic"
+	kafkaWriter := getKafkaWriter(kafkaURL, topic)
+
+	defer kafkaWriter.Close()
+
+	// Send messages.
+	for _, word := range []string{"Welcome", "gokafka"} {
+		msg := kafka.Message{
+			Key:   []byte(fmt.Sprintf("Key-%d", 1)),
+			Value: []byte(word),
+		}
+
+		err := kafkaWriter.WriteMessages(context.Background(), msg)
+		if err != nil {
+			fmt.Println(err)
+		}
+	}
+}
diff --git a/python/src/AjouSlackProducer.py b/python/src/AjouSlackProducer.py
index de7970d..c1b242c 100644
--- a/python/src/AjouSlackProducer.py
+++ b/python/src/AjouSlackProducer.py
@@ -17,7 +17,7 @@ def acked(err, msg):
     if err is not None:
         print("Failed to deliver message: {0}: {1}".format(msg.value(), err.str()))
     else:
-        print(f"Message produced: {0}...".format(msg.value()))
+        print("Message produced: {0}...".format(msg.value()))
 
 
 # Make data into dictionary format
-- 
GitLab