{"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\/pt\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/","title":{"rendered":"Introdu\u00e7\u00e3o ao Kafka e ao Couchbase como um endpoint"},"content":{"rendered":"<p>O Couchbase \u00e9 excelente como fonte para o Apache Kafka usando o conector DCP.<br \/>\nNo entanto, ele tamb\u00e9m \u00e9 excelente como um ponto de extremidade para digerir dados, pois \u00e9 r\u00e1pido, com mem\u00f3ria em primeiro lugar e armazenamento confi\u00e1vel.<\/p>\n<p>Nesta postagem do blog, mostrarei como criar um aplicativo Java simples para um produtor e um consumidor que salvam as mensagens publicadas do Kafka no Couchbase.<\/p>\n<p>Presumo que voc\u00ea j\u00e1 tenha um cluster do Kafka (mesmo que seja um cluster de n\u00f3 \u00fanico). Caso contr\u00e1rio, tente seguir esse guia de instala\u00e7\u00e3o.<\/p>\n<p>Este ambiente de blog tem 4 partes:<\/p>\n<ol>\n<li>Produtor da Kafka<\/li>\n<li>Fila do Apache Kafka<\/li>\n<li>Consumidor Kafka<\/li>\n<li>Servidor Couchbase<\/li>\n<\/ol>\n<h2>Produtor<\/h2>\n<p>Precisamos do produtor para enviar mensagens \u00e0 nossa fila.<\/p>\n<p>Na fila, essas mensagens est\u00e3o sendo digeridas e todos os aplicativos que se inscreveram no t\u00f3pico podem ler essas mensagens.<\/p>\n<p>A fonte de nossas mensagens ser\u00e1 um arquivo JSON fict\u00edcio que criei usando o Mockaroo, que ser\u00e1 dividido e enviado para a fila.<\/p>\n<p>Nossos dados JSON de amostra s\u00e3o semelhantes a:<\/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>O c\u00f3digo do produtor:<\/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\">Sa\u00edda do aplicativo produtor Kafka<\/p><\/div>\n<h2>Consumidor<\/h2>\n<p>Essa \u00e9 uma solu\u00e7\u00e3o simples, muito direta, basta obter as mensagens da fila e usar o Couchbase Java SDK para inserir documentos no Couchbase. Para simplificar, usarei o sync java SDK, mas o uso do async \u00e9 totalmente poss\u00edvel e at\u00e9 recomendado.<\/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\">Sa\u00edda do console do nosso consumidor Kafka<\/p><\/div>\n<h2>Servidor Couchbase<\/h2>\n<p>Agora podemos ver o resultado no servidor Couchbase.<\/p>\n<p>Veja o bucket kafkaExample - preenchido com 1.000 documentos.<\/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\">Baldes do Couchbase<\/p><\/div>\n<p>Cada documento tem uma apar\u00eancia semelhante a essa:<\/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\">Documento de amostra<\/p><\/div>\n<p>Solu\u00e7\u00e3o simples de tr\u00eas partes.<\/p>\n<p>Observe que, em um ambiente de produ\u00e7\u00e3o, o Producer, o Consumer, o Kafka ou o Couchbase estar\u00e3o em uma ou mais m\u00e1quinas cada.<\/p>\n<p>C\u00f3digo completo (incluindo depend\u00eancias Maven) em <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 v26.1 (Yoast SEO v26.1.1) - 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\/pt\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\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\/pt\/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 minutos\" \/>\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\":\"pt-BR\",\"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\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\",\"@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\/pt\/author\/roi-katz\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Introdu\u00e7\u00e3o ao Kafka e ao Couchbase como um endpoint","description":"Primeiros passos com o Apache Kafka e o Couchbase. Use o Couchbase facilmente como destino e use um consumidor do Kafka para inserir dados em seu banco de dados do Couchbase.","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\/pt\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/","og_locale":"pt_BR","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\/pt\/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 minutos"},"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":"pt-BR","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":"Introdu\u00e7\u00e3o ao Kafka e ao Couchbase como um 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":"Primeiros passos com o Apache Kafka e o Couchbase. Use o Couchbase facilmente como destino e use um consumidor do Kafka para inserir dados em seu banco de dados do Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/getting-started-with-kafka-and-couchbase-as-an-endpoint\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@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":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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, arquiteto de solu\u00e7\u00f5es, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@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 \u00e9 arquiteto de solu\u00e7\u00f5es do Couchbase, desenvolvedor de software e arquiteto com mais de 10 anos de ampla experi\u00eancia no setor. Ele foi instrutor e autor de cursos com especializa\u00e7\u00e3o em sistemas de Big Data, bancos de dados NoSQL, Couchbase, arquitetura distribu\u00edda e computa\u00e7\u00e3o em nuvem.","url":"https:\/\/www.couchbase.com\/blog\/pt\/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 \u00e9 arquiteto de solu\u00e7\u00f5es do Couchbase, desenvolvedor de software e arquiteto com mais de 10 anos de ampla experi\u00eancia no setor. Ele foi instrutor e autor de cursos com especializa\u00e7\u00e3o em sistemas de Big Data, bancos de dados NoSQL, Couchbase, arquitetura distribu\u00edda e computa\u00e7\u00e3o em nuvem."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2160","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2160"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2160\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2160"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}