我想使用kafka和springboot从文件中实时发送数据,我已经测试了这段代码,使用postman以JSON格式发送数据到kafka主题。
@RestController
public class OrderController {
@Autowired
private KafkaProducerService kafkaProducerService;
@PostMapping("/post")
public void order(@RequestBody Order order) {
kafkaProducerService.send(order);
}
}
在大多数情况下,我想使用springboot从文件发送数据。知道怎么做吗?
这对我很有帮助:
在.propreties
和pom.xml
中进行适当的配置后,我可以在我的服务层中使用它。
private final static String TOPIC = "TOPIC";
@Autowired
private KafkaTemplate<String, Sting> kafkaTemplate;
public void someMethod(){
//... code
kafkaTemplate.send(TOPIC, obj.toString());
}
我需要发送字符串,它工作得很好,希望它有帮助。我还制定了调度方法,以编程方式在Kafka队列上发送。
你还应该添加到你的pom
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
这就是我需要的。properties
# Required connection configs for Kafka producer, consumer, and admin
spring.kafka.properties.sasl.mechanism=PLAIN
spring.kafka.properties.bootstrap.servers=server
spring.kafka.properties.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='' password='';
spring.kafka.properties.security.protocol=SASL_SSL
#Serialization
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
# Best practice for higher availability in Apache Kafka clients prior to 3.0
spring.kafka.properties.session.timeout.ms=45000
如果有帮助或需要其他东西,请告诉我