如何在springmvc中使用apachekafka?有可能吗?

vmdwslir  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(377)

我是ApacheKafka的初学者,正在尝试学习confluent-kafka-rest-utils,但是我对如何使用它感到困惑。
在搜索过程中我发现了这个文档https://spring.io/blog/2015/04/15/using-apache-kafka-for-integration-and-data-processing-pipelines-with-spring
这是一个很好的文档,但它不能帮助我学习rest实用程序。
合流kafka rest utils的git代码是
https://github.com/confluentinc/kafka-rest 演示如何使用rest-kafka。但我想知道确切的程序以便更清楚地了解它。简单解释一下。有人能给我推荐一些关于如何使用rest客户端的链接吗。请引导我朝这个方向走。
这可能是一个愚蠢的问题,但我没有其他选择学习。
提前谢谢。

oxiaedzo

oxiaedzo1#

首先尝试使用springmvc创建rest服务,把kafka的东西放在一边。
一旦你能够运行“helloworld”类的rest服务,那么选择kafka文档。
请参阅有关如何创建kafka集群的文档,并运行默认的console consumer和producer程序来检查集群。
现在,编写一个主java程序,并使用kafka客户机api创建一个kafka生产者。参考其文件。确保通过主程序发送的消息到达使用者。
现在,将这个主程序的内容注入rest服务中,这样请求体中传递的消息现在就被传递到kafka集群,并且消费者可以读取。
希望有帮助。

jtjikinw

jtjikinw2#

首先,创建一个 Property.java 设置配置并确保将其标记为 @Component ```
private static final String TOPIC = "Kafka_Example";

public Properties settingProperties() {
Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
props.put("topic",TOPIC);
return props;
}

public Property() {
}

public void sendMessage(String msg) {

KafkaProducer<String, String> producer =
        new KafkaProducer<String, String>(settingProperties());

ProducerRecord<String, String> record =
        new ProducerRecord<String, String>(settingProperties().getProperty("topic"),
        msg);
producer.send(record);

producer.close();

}

第二,在你身上 `Controller Class` ```
@Autowired
private Property property;

现在,你终于可以做你自己的方法了

@GetMapping("/publish/{name}")
public String post(@PathVariable("name") final String name) {

    property.sendMessage(name);

    return "Published successfully";
}

确保您的 TOPIC 我的名字是正确的 Kafka_Example 下面是您必须运行的命令来设置内容
终端1-运行zookeper:bin/zookeper-server-start.sh config/zookeper.properties
终端2-运行kafka服务器:bin/kafka-server-start.sh config/server.properties
终端3-创建主题:bin/kafka-topics.sh--create--zookeeperlocalhost:2181 --replication-factor 1--分区1--主题 your-topic-name 终端3-通过控制台消费:bin/kafka-console-consumer.sh--引导服务器localhost:9092 --topic your-topic name --从一开始
现在,你可以走了 http://localhost:8080/api/publish/<Your-name> 我的pom依赖项

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

添加要使用的以上依赖项 Producer API 以及 Consumer API 参考文件
如果你觉得有用就竖起大拇指。谢谢你宝贵的时间。如果您有任何疑问,请在下面留言。

相关问题