Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 学习卡夫卡0.8.2_Java_Apache Kafka - Fatal编程技术网

Java 学习卡夫卡0.8.2

Java 学习卡夫卡0.8.2,java,apache-kafka,Java,Apache Kafka,在新版本中找到一些简单的入门示例花了很多时间。像KafkaProducer这样的东西与制作人示例不同,而且web上的许多旧代码似乎并不编译相同的代码 有什么指导吗?ApacheKafka站点没有Java中的生产者示例 请告知。由于缺乏好的例子,我不得不退步 这是我的pom.xml的一部分 <dependency> <groupId>org.apache.kafka</groupId> <artifa

在新版本中找到一些简单的入门示例花了很多时间。像KafkaProducer这样的东西与制作人示例不同,而且web上的许多旧代码似乎并不编译相同的代码

有什么指导吗?ApacheKafka站点没有Java中的生产者示例


请告知。

由于缺乏好的例子,我不得不退步

这是我的pom.xml的一部分

    <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.10</artifactId>
            <version>0.8.2.0</version>
            <scope>compile</scope>
    </dependency>

org.apache.kafka
卡夫卡2.10
0.8.2.0
编译
这是我的代码-等待一些测试

    // KafkaProducer.java - A first pass to verify that we can bring in the appropriate
    //                   libraries using Maven

    // Supports unit tests
    package com.bruno;

    import org.junit.Test;
    import static org.junit.Assert.*;



    import java.util.Arrays;
    import java.util.Properties;

    import kafka.javaapi.producer.Producer;
    import kafka.producer.KeyedMessage;
    import kafka.producer.ProducerConfig;



    public class MyKafkaProducer
    {

        public static void main(String[] args) throws Exception {
            Properties props = new Properties();

            props.put("metadata.broker.list", "192.168.1.203:9092");
            props.put("serializer.class", "kafka.serializer.StringEncoder");
            props.put("request.required.acks", "1");
            ProducerConfig config = new ProducerConfig(props);

            Producer p = new Producer<String, String>(config);

            //sending...
            String topic = "test";
            String message = "Hello Kafka";
            KeyedMessage<String, String> keyedMessage = new KeyedMessage<String, String>(topic, message);
            p.send(keyedMessage);

        }

    }
//KafkaProducer.java-验证我们是否可以引入适当的
//使用Maven的库
//支持单元测试
包com.bruno;
导入org.junit.Test;
导入静态org.junit.Assert.*;
导入java.util.array;
导入java.util.Properties;
导入kafka.javaapi.producer.producer;
导入kafka.producer.KeyedMessage;
导入kafka.producer.ProducerConfig;
公共类MyKafkaProducer
{
公共静态void main(字符串[]args)引发异常{
Properties props=新属性();
props.put(“metadata.broker.list”,“192.168.1.203:9092”);
put(“serializer.class”、“kafka.serializer.StringEncoder”);
道具放置(“请求.要求.确认”,“1”);
ProducerConfig config=新的ProducerConfig(道具);
生产者p=新生产者(配置);
//发送。。。
字符串topic=“test”;
String message=“你好,卡夫卡”;
KeyedMessage KeyedMessage=新的KeyedMessage(主题,消息);
p、 发送(键控消息);
}
}

在下面的示例中,我创建了一个生产者,使用字符串作为键,字节[]作为消息内容

使用基本参数创建新的生产者:

Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "server1:123,server2:456");
props.put(ProducerConfig.RETRIES_CONFIG, "3");
props.put(ProducerConfig.ACKS_CONFIG, "all");
props.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, "none");
props.put(ProducerConfig.BATCH_SIZE_CONFIG, 200);
props.put(ProducerConfig.BLOCK_ON_BUFFER_FULL_CONFIG, true);
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer");
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.ByteArraySerializer");

KafkaProducer<String, byte[]> producer = new KafkaProducer<String, byte[]>(props);
Properties=newproperties();
put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,“server1:123,server2:456”);
props.put(ProducerConfig.RETRIES_CONFIG,“3”);
props.put(ProducerConfig.ACKS_CONFIG,“all”);
props.put(ProducerConfig.COMPRESSION_TYPE_CONFIG,“无”);
props.put(ProducerConfig.BATCH\u SIZE\u CONFIG,200);
props.put(ProducerConfig.BLOCK\u ON\u BUFFER\u FULL\u CONFIG,true);
put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,“org.apache.kafka.common.serialization.StringSerializer”);
put(ProducerConfig.VALUE\u SERIALIZER\u CLASS\u CONFIG,“org.apache.kafka.common.serialization.ByteArraySerializer”);
卡夫卡制作人=新卡夫卡制作人(道具);
同步发送消息:

producer.send(new ProducerRecord<>(topic, msgKey, msgContent)).get();
producer.send(new ProducerRecord<>(topic, msgKey, msgContent));
producer.send(newproducerrecord(主题、msgKey、msgContent)).get();
异步发送消息:

producer.send(new ProducerRecord<>(topic, msgKey, msgContent)).get();
producer.send(new ProducerRecord<>(topic, msgKey, msgContent));
producer.send(新产品记录(主题、msgKey、msgContent));
您的maven依赖关系对消费者和生产者都有好处。如果您只需要制作人,可以使用:

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>0.8.2.0</version>
</dependency>

org.apache.kafka
卡夫卡客户
0.8.2.0

请注意,新的消费者API可用,但目前不可用。在源代码中,新API将返回null或抛出异常。

请尝试查看以下示例:

最好检查原始作者是如何测试他们的代码的,这样您就可以了解他们试图实现的目标或期望的用途(如果提供了测试:)

在这种情况下,只需检查以下代码:


:)

此示例使用旧卡夫卡制作人。它与0.8.2卡夫卡制作人无关。