-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproducer.clj
30 lines (24 loc) · 1.05 KB
/
producer.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
(ns kafka-euljiro.producer
(:require
[clojure.data.json :as json]
[medley.core :refer [update-existing]]
[clojure.walk :as walk])
(:import
(org.apache.kafka.clients.producer KafkaProducer ProducerRecord)))
(defn produce!
[producer topic message]
(.send producer (ProducerRecord. topic (json/write-str message))))
(comment
;; KafkProducer 만들기
@(def producer (KafkaProducer. (-> {:bootstrap.servers "localhost:29092"
:key.serializer "org.apache.kafka.common.serialization.StringSerializer"
:value.serializer "org.apache.kafka.common.serialization.StringSerializer"
:acks "all"
:retries 3}
(update-existing :retries int)
(walk/stringify-keys))))
;; topic 이름
@(def topic-name "euljiro-kafka-jungin")
;; Message produce하기
(produce! producer topic-name {:hello :world})
:rcf)