{"id":2160,"date":"2016-02-08T23:54:04","date_gmt":"2016-02-08T23:54:03","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2160"},"modified":"2019-04-08T07:15:09","modified_gmt":"2019-04-08T14:15:09","slug":"getting-started-with-kafka-and-couchbase-as-an-endpoint","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/","title":{"rendered":"\uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub85c\uc11c Kafka \ubc0f Couchbase \uc2dc\uc791\ud558\uae30"},"content":{"rendered":"<p>Couchbase\ub294 DCP \ucee4\ub125\ud130\ub97c \uc0ac\uc6a9\ud558\ub294 Apache Kafka\uc758 \uc18c\uc2a4\ub85c \ud6cc\ub96d\ud569\ub2c8\ub2e4.<br \/>\n\uadf8\ub7ec\ub098 \ube60\ub974\uace0 \uba54\ubaa8\ub9ac\ub97c \uc6b0\uc120\uc2dc\ud558\uba70 \uc548\uc815\uc801\uc778 \uc2a4\ud1a0\ub9ac\uc9c0\ub97c \uc81c\uacf5\ud558\uae30 \ub54c\ubb38\uc5d0 \ub370\uc774\ud130\ub97c \uc18c\ud654\ud558\ub294 \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub85c\ub3c4 \ud6cc\ub96d\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 \uc0dd\uc0b0\uc790\uc640 \uc18c\ube44\uc790\ub97c \uc704\ud55c \uac04\ub2e8\ud55c Java \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uad6c\ucd95\ud558\uc5ec Kafka\uc5d0\uc11c \uac8c\uc2dc\ub41c \uba54\uc2dc\uc9c0\ub97c Couchbase\uc5d0 \uc800\uc7a5\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc5ec\uae30\uc11c\ub294 \uc774\ubbf8 Kafka \ud074\ub7ec\uc2a4\ud130\uac00 \uc788\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4(\ub2e8\uc77c \ub178\ub4dc \ud074\ub7ec\uc2a4\ud130\uc77c\uc9c0\ub77c\ub3c4). \uadf8\ub807\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \ud574\ub2f9 \uc124\uce58 \uac00\uc774\ub4dc\ub97c \ub530\ub974\uc138\uc694.<\/p>\n<p>\uc774 \ube14\ub85c\uadf8 \ud658\uacbd\uc740 4\uac00\uc9c0 \ubd80\ubd84\uc73c\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<ol>\n<li>\uce74\ud504\uce74 \ud504\ub85c\ub4c0\uc11c<\/li>\n<li>\uc544\ud30c\uce58 \uce74\ud504\uce74 \ub300\uae30\uc5f4<\/li>\n<li>\uce74\ud504\uce74 \uc18c\ube44\uc790<\/li>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84<\/li>\n<\/ol>\n<h2>\ud504\ub85c\ub4c0\uc11c<\/h2>\n<p>\ub300\uae30\uc5f4\uc5d0 \uba54\uc2dc\uc9c0\ub97c \uc81c\ucd9c\ud558\ub824\uba74 \ud504\ub85c\ub4c0\uc11c\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub300\uae30\uc5f4\uc5d0\uc11c \ud574\ub2f9 \uba54\uc2dc\uc9c0\uac00 \uc18c\ud654\ub418\uace0 \uc788\uc73c\uba70 \ud574\ub2f9 \ud1a0\ud53d\uc744 \uad6c\ub3c5\ud55c \ubaa8\ub4e0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ud574\ub2f9 \uba54\uc2dc\uc9c0\ub97c \uc77d\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uba54\uc2dc\uc9c0\uc758 \uc18c\uc2a4\ub294 Mockaroo\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub9cc\ub4e0 \ub354\ubbf8 JSON \ud30c\uc77c\uc774 \ub420 \uac83\uc774\uba70, \uc774\ub97c \ubd84\ud560\ud558\uc5ec \ub300\uae30\uc5f4\ub85c \uc804\uc1a1\ud560 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc0d8\ud50c JSON \ub370\uc774\ud130\ub294 \ub2e4\uc74c\uacfc \uc720\uc0ac\ud569\ub2c8\ub2e4:<\/p>\n<pre><code>{   \r\n   \"id\":1,  \r\n   \"gender\":\"Female\",  \r\n   \"first_name\":\"Jane\",  \r\n   \"last_name\":\"Holmes\",  \r\n   \"email\":\"jholmes0@myspace.com\",  \r\n   \"ip_address\":\"230.49.112.20\",  \r\n   \"city\":\"Houston\"  \r\n }  <\/code><\/pre>\n<p>\ud504\ub85c\ub4c0\uc11c \ucf54\ub4dc\uc785\ub2c8\ub2e4:<\/p>\n<pre><code>import com.fasterxml.jackson.databind.JsonNode;  \r\n import com.fasterxml.jackson.databind.ObjectMapper;  \r\n import com.fasterxml.jackson.databind.node.ArrayNode;  \r\n import org.apache.kafka.clients.producer.KafkaProducer;  \r\n import org.apache.kafka.clients.producer.ProducerConfig;  \r\n import org.apache.kafka.clients.producer.ProducerRecord;  \r\n import org.apache.kafka.clients.producer.RecordMetadata;  \r\n   \r\n import java.io.File;  \r\n import java.nio.charset.Charset;  \r\n import java.nio.file.Files;  \r\n import java.nio.file.Paths;  \r\n import java.util.ArrayList;  \r\n import java.util.HashMap;  \r\n import java.util.List;  \r\n import java.util.Map;  \r\n import java.util.concurrent.Future;  \r\n   \r\n   \r\n public class KafkaSimpleProducer {  \r\n   public static void main(String[] args) throws Exception {  \r\n     Map&lt;String, Object&gt; config = new HashMap&lt;&gt;();  \r\n     config.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, \"localhost:9092\");  \r\n     config.put(\"value.serializer\", \"org.apache.kafka.common.serialization.StringSerializer\");  \r\n     config.put(\"key.serializer\", \"org.apache.kafka.common.serialization.StringSerializer\");  \r\n     KafkaProducer&lt;String, String&gt; producer = new KafkaProducer&lt;String, String&gt;(config);  \r\n   \r\n     File input = new File(\"sampleJsonData.json\");  \r\n     byte[] encoded = Files.readAllBytes(Paths.get(input.getPath()  ));  \r\n   \r\n     String jsons = new String(encoded, Charset.defaultCharset());  \r\n     System.out.println(\"Splitting file to jsons....\");  \r\n   \r\n     List splittedJsons = split(jsons);  \r\n\r\n     System.out.println(\"Converting to JsonDocuments....\");  \r\n   \r\n     int docCount = splittedJsons.size();  \r\n   \r\n     System.out.println(\"Number of documents is: \" + docCount );  \r\n   \r\n     System.out.println(\"Starting sending msg to kafka....\");  \r\n     int count = 0;  \r\n     for ( String doc : splittedJsons) {  \r\n       System.out.println(\"sending msg....\" + count);  \r\n       ProducerRecord&lt;String,String&gt; record = new ProducerRecord&lt;&gt;( \"couchbaseTopic\", doc );  \r\n       Future meta = producer.send(record);  \r\n       System.out.println(\"msg sent....\" + count);  \r\n   \r\n       count++;  \r\n     }  \r\n   \r\n     System.out.println(\"Total of \" + count + \" messages sent\");  \r\n   \r\n     producer.close();  \r\n   }  \r\n\r\n   public static List split(String jsonArray) throws Exception {  \r\n     List splittedJsonElements = new ArrayList();  \r\n     ObjectMapper jsonMapper = new ObjectMapper();  \r\n     JsonNode jsonNode = jsonMapper.readTree(jsonArray);  \r\n   \r\n     if (jsonNode.isArray()) {  \r\n       ArrayNode arrayNode = (ArrayNode) jsonNode;  \r\n       for (int i = 0; i &lt; arrayNode.size(); i++) {  \r\n         JsonNode individualElement = arrayNode.get(i);  \r\n         splittedJsonElements.add(individualElement.toString());  \r\n       }  \r\n     }  \r\n     return splittedJsonElements;  \r\n   }  \r\n }  \r\n   <\/code><\/pre>\n<div style=\"width: 410px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/february\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/screen-shot-2016-02-04-at-14.53.04.png\" alt=\"Output from the Kafka producer app\" width=\"400\" height=\"252\" \/><p class=\"wp-caption-text\">\uce74\ud504\uce74 \ud504\ub85c\ub4c0\uc11c \uc571\uc758 \ucd9c\ub825<\/p><\/div>\n<h2>\uc18c\ube44\uc790<\/h2>\n<p>\uc774\uac83\uc740 \ub9e4\uc6b0 \uac04\ub2e8\ud558\uba70, \ub300\uae30\uc5f4\uc5d0\uc11c \uba54\uc2dc\uc9c0\ub97c \uac00\uc838\uc624\uace0 Couchbase Java SDK\ub97c \uc0ac\uc6a9\ud558\uc5ec Couchbase\uc5d0 \ubb38\uc11c\ub97c \uc0bd\uc785\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4. \uac04\ub2e8\ud558\uac8c \ud558\uae30 \uc704\ud574 \ub3d9\uae30\ud654 \uc790\ubc14 SDK\ub97c \uc0ac\uc6a9\ud558\uaca0\uc9c0\ub9cc \ube44\ub3d9\uae30\ud654\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\ub3c4 \ucda9\ubd84\ud788 \uac00\ub2a5\ud558\uace0 \uad8c\uc7a5\ud558\uae30\ub3c4 \ud569\ub2c8\ub2e4.<\/p>\n<pre><code>import com.couchbase.client.java.Bucket;  \r\n import com.couchbase.client.java.Cluster;  \r\n import com.couchbase.client.java.CouchbaseCluster;  \r\n import com.couchbase.client.java.document.JsonDocument;  \r\n import com.couchbase.client.java.document.json.JsonObject;  \r\n import kafka.consumer.Consumer;  \r\n import kafka.consumer.ConsumerConfig;  \r\n import kafka.consumer.KafkaStream;  \r\n import kafka.javaapi.consumer.ConsumerConnector;  \r\n import kafka.message.MessageAndMetadata;  \r\n   \r\n import java.util.*;  \r\n   \r\n public class KafkaSimpleConsumer {  \r\n   public static void main(String[] args) {  \r\n   \r\n     Properties config = new Properties();  \r\n     config.put(\"zookeeper.connect\", \"localhost:2181\");  \r\n     config.put(\"zookeeper.connectiontimeout.ms\", \"10000\");  \r\n     config.put(\"group.id\", \"default\");  \r\n   \r\n     ConsumerConfig consumerConfig = new kafka.consumer.ConsumerConfig(config);  \r\n   \r\n     ConsumerConnector consumerConnector = Consumer.createJavaConsumerConnector(consumerConfig);  \r\n   \r\n     Map&lt;String, Integer&gt; topicCountMap = new HashMap&lt;&gt;();  \r\n     topicCountMap.put(\"couchbaseTopic\", 1);  \r\n   \r\n     Map&lt;String, List&lt;KafkaStream&lt;byte[], byte[]&gt;&gt;&gt; consumerMap = consumerConnector.createMessageStreams(topicCountMap);  \r\n   \r\n     List&lt;KafkaStream&lt;byte[], byte[]&gt;&gt; streams = consumerMap.get(\"couchbaseTopic\");  \r\n   \r\n     List nodes = new ArrayList&lt;&gt;();  \r\n     nodes.add(\"localhost\");  \r\n   \r\n     Cluster cluster = CouchbaseCluster.create(nodes);  \r\n     final Bucket bucket = cluster.openBucket(\"kafkaExample\");  \r\n   \r\n     try {  \r\n       for (final KafkaStream&lt;byte[], byte[]&gt; stream : streams) {  \r\n         for (MessageAndMetadata&lt;byte[], byte[]&gt; msgAndMetaData : stream) {  \r\n           String msg = convertPayloadToString(msgAndMetaData.message());  \r\n           System.out.println(msgAndMetaData.topic() + \": \" + msg);  \r\n   \r\n           try {  \r\n             JsonObject doc = JsonObject.fromJson(msg);  \r\n             String id = UUID.randomUUID().toString();  \r\n             bucket.upsert(JsonDocument.create(id, doc));  \r\n           } catch (Exception ex) {  \r\n             System.out.println(\"Not a json object: \" + ex.getMessage());  \r\n           }  \r\n         }  \r\n       }  \r\n     } catch (Exception ex) {  \r\n       System.out.println(\"EXCEPTION!!!!\" + ex.getMessage());  \r\n       cluster.disconnect();  \r\n     }  \r\n   \r\n     cluster.disconnect();  \r\n   }  \r\n   \r\n   private static String convertPayloadToString(final byte[] message) {  \r\n     String string = new String(message);  \r\n     return string;  \r\n   }  \r\n }  <\/code><\/pre>\n<div style=\"width: 410px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/february\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/screen-shot-2016-02-04-at-14.53.14.png\" alt=\"Output from the Consumer app\" width=\"400\" height=\"241\" \/><p class=\"wp-caption-text\">\uce74\ud504\uce74 \uc18c\ube44\uc790 \ucf58\uc194 \ucd9c\ub825<\/p><\/div>\n<h2>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84<\/h2>\n<p>\uc774\uc81c Couchbase \uc11c\ubc84\uc5d0\uc11c \uacb0\uacfc\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uce74\ud504\uce74 \uc608\uc2dc \ubc84\ud0b7 - 1000\uac1c\uc758 \ubb38\uc11c\ub85c \ucc44\uc6cc\uc838 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<div style=\"width: 650px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/february\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/screen-shot-2016-02-04-at-14.51.40.png\" alt=\"\" width=\"640\" height=\"141\" \/><p class=\"wp-caption-text\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubc84\ud0b7<\/p><\/div>\n<p>\uac01 \ubb38\uc11c\ub294 \uc774\uc640 \ube44\uc2b7\ud558\uac8c \uc0dd\uacbc\uc2b5\ub2c8\ub2e4:<\/p>\n<div style=\"width: 650px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/february\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/screen-shot-2016-02-04-at-14.52.04.png\" alt=\"\" width=\"640\" height=\"139\" \/><p class=\"wp-caption-text\">\uc0d8\ud50c \ubb38\uc11c<\/p><\/div>\n<p>\uac04\ub2e8\ud55c 3\ub2e8\uacc4 \uc194\ub8e8\uc158.<\/p>\n<p>\ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0\uc11c\ub294 \ud504\ub85c\ub4c0\uc11c, \uc18c\ube44\uc790, \uce74\ud504\uce74 \ub610\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uac00 \uac01\uac01 \ud558\ub098 \uc774\uc0c1\uc758 \uba38\uc2e0\uc5d0 \uc124\uce58\ub418\uc5b4 \uc788\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694.<\/p>\n<p>\uc758 \uc804\uccb4(Maven \uc885\uc18d\uc131 \ud3ec\ud568) \ucf54\ub4dc <a href=\"https:\/\/github.com\/roikatz\/kafka-consumer-couchbase\">GitHub<\/a>.<\/p>\n<p>Roi.<\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase is great as a source for Apache Kafka using the DCP connector. However it is also great as an endpoint for digesting data, as it is fast, memory first and reliable storage. In this blog post I will show [&hellip;]<\/p>","protected":false},"author":64,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,2242,1818],"tags":[],"ppma_author":[8938],"class_list":["post-2160","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-connectors","category-java"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Getting started with Kafka and Couchbase as an endpoint<\/title>\n<meta name=\"description\" content=\"Getting started with Apache Kafka and Couchbase. Use Couchbase easily as the target, and use a Kafka consumer to insert data into your Couchbase database.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting started with Kafka and Couchbase as an endpoint\" \/>\n<meta property=\"og:description\" content=\"Getting started with Apache Kafka and Couchbase. Use Couchbase easily as the target, and use a Kafka consumer to insert data into your Couchbase database.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-08T23:54:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-04-08T14:15:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Roi Katz, Solution Architect, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Roi Katz, Solution Architect, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/\"},\"author\":{\"name\":\"Roi Katz, Solution Architect, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8e452408f0a3793ded90eea9263a264e\"},\"headline\":\"Getting started with Kafka and Couchbase as an endpoint\",\"datePublished\":\"2016-02-08T23:54:03+00:00\",\"dateModified\":\"2019-04-08T14:15:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/\"},\"wordCount\":323,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Best Practices and Tutorials\",\"Connectors\",\"Java\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/\",\"name\":\"Getting started with Kafka and Couchbase as an endpoint\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-02-08T23:54:03+00:00\",\"dateModified\":\"2019-04-08T14:15:09+00:00\",\"description\":\"Getting started with Apache Kafka and Couchbase. Use Couchbase easily as the target, and use a Kafka consumer to insert data into your Couchbase database.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting started with Kafka and Couchbase as an endpoint\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8e452408f0a3793ded90eea9263a264e\",\"name\":\"Roi Katz, Solution Architect, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5eb805f4c05de24c77c276f241a51b53\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a22c6493bc51fd783319cc905789337f163df1de53c7bad6d769c9560be0ba3c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a22c6493bc51fd783319cc905789337f163df1de53c7bad6d769c9560be0ba3c?s=96&d=mm&r=g\",\"caption\":\"Roi Katz, Solution Architect, Couchbase\"},\"description\":\"Roi is a Couchbase Solution Architect, software developer and architect with over 10 years of broad industry experience. He has been a trainer and author of courses with a specialization in Big Data Systems, NoSQL Databases, Couchbase, Distributed Architecture and Cloud Computing.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/roi-katz\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub85c\uc11c Kafka \ubc0f Couchbase \uc2dc\uc791\ud558\uae30","description":"Getting started with Apache Kafka and Couchbase. Use Couchbase easily as the target, and use a Kafka consumer to insert data into your Couchbase database.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/","og_locale":"ko_KR","og_type":"article","og_title":"Getting started with Kafka and Couchbase as an endpoint","og_description":"Getting started with Apache Kafka and Couchbase. Use Couchbase easily as the target, and use a Kafka consumer to insert data into your Couchbase database.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-02-08T23:54:03+00:00","article_modified_time":"2019-04-08T14:15:09+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"Roi Katz, Solution Architect, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Roi Katz, Solution Architect, Couchbase","Est. reading time":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/"},"author":{"name":"Roi Katz, Solution Architect, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8e452408f0a3793ded90eea9263a264e"},"headline":"Getting started with Kafka and Couchbase as an endpoint","datePublished":"2016-02-08T23:54:03+00:00","dateModified":"2019-04-08T14:15:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/"},"wordCount":323,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Best Practices and Tutorials","Connectors","Java"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/","url":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/","name":"\uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub85c\uc11c Kafka \ubc0f Couchbase \uc2dc\uc791\ud558\uae30","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-02-08T23:54:03+00:00","dateModified":"2019-04-08T14:15:09+00:00","description":"Getting started with Apache Kafka and Couchbase. Use Couchbase easily as the target, and use a Kafka consumer to insert data into your Couchbase database.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Getting started with Kafka and Couchbase as an endpoint"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8e452408f0a3793ded90eea9263a264e","name":"\ub85c\uc774 \uce74\uce20, \uc194\ub8e8\uc158 \uc544\ud0a4\ud14d\ud2b8, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5eb805f4c05de24c77c276f241a51b53","url":"https:\/\/secure.gravatar.com\/avatar\/a22c6493bc51fd783319cc905789337f163df1de53c7bad6d769c9560be0ba3c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a22c6493bc51fd783319cc905789337f163df1de53c7bad6d769c9560be0ba3c?s=96&d=mm&r=g","caption":"Roi Katz, Solution Architect, Couchbase"},"description":"Roi\ub294 10\ub144 \uc774\uc0c1\uc758 \ud3ed\ub113\uc740 \uc5c5\uacc4 \uacbd\ud5d8\uc744 \uac00\uc9c4 Couchbase \uc194\ub8e8\uc158 \uc544\ud0a4\ud14d\ud2b8, \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc790 \ubc0f \uc124\uacc4\uc790\uc785\ub2c8\ub2e4. \uadf8\ub294 \ube45 \ub370\uc774\ud130 \uc2dc\uc2a4\ud15c, NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, \uce74\uc6b0\uce58\ubca0\uc774\uc2a4, \ubd84\uc0b0 \uc544\ud0a4\ud14d\ucc98 \ubc0f \ud074\ub77c\uc6b0\ub4dc \ucef4\ud4e8\ud305\uc744 \uc804\ubb38\uc73c\ub85c \ud558\ub294 \uad50\uc721 \uacfc\uc815\uc758 \uac15\uc0ac\uc774\uc790 \uc800\uc790\ub85c \ud65c\ub3d9\ud574 \uc654\uc2b5\ub2c8\ub2e4.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/roi-katz\/"}]}},"authors":[{"term_id":8938,"user_id":64,"is_guest":0,"slug":"roi-katz","display_name":"Roi Katz, Solution Architect, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/a22c6493bc51fd783319cc905789337f163df1de53c7bad6d769c9560be0ba3c?s=96&d=mm&r=g","author_category":"","last_name":"Katz","first_name":"Roi","job_title":"","user_url":"","description":"Roi\ub294 10\ub144 \uc774\uc0c1\uc758 \ud3ed\ub113\uc740 \uc5c5\uacc4 \uacbd\ud5d8\uc744 \uac00\uc9c4 Couchbase \uc194\ub8e8\uc158 \uc544\ud0a4\ud14d\ud2b8, \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc790 \ubc0f \uc124\uacc4\uc790\uc785\ub2c8\ub2e4. \uadf8\ub294 \ube45 \ub370\uc774\ud130 \uc2dc\uc2a4\ud15c, NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, \uce74\uc6b0\uce58\ubca0\uc774\uc2a4, \ubd84\uc0b0 \uc544\ud0a4\ud14d\ucc98 \ubc0f \ud074\ub77c\uc6b0\ub4dc \ucef4\ud4e8\ud305\uc744 \uc804\ubb38\uc73c\ub85c \ud558\ub294 \uad50\uc721 \uacfc\uc815\uc758 \uac15\uc0ac\uc774\uc790 \uc800\uc790\ub85c \ud65c\ub3d9\ud574 \uc654\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2160","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=2160"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2160\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=2160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=2160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=2160"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=2160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}