Kafka 存入带有反斜杠问题解决
spring整合卡夫卡引入jar包
<!-- Kafka -->
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
</dependency>
配置kafka基础参数
1.直接在配置文件application中配置参数基础信息
# KAFKA
spring.kafka.bootstrap-servers=172.31.3.73:9092,172.31.3.74:9092,172.31.3.75:9092
spring.kafka.welder.topic-id=hw_welding_machine
spring.kafka.consumer.group-id=prod-consumers
spring.kafka.consumer.auto-offset-reset=latest
spring.kafka.consumer.enable-auto-commit=true
spring.kafka.consumer.auto-commit-interval=1000
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer 是 Spring Kafka 中用于配置生产者的属性之一,它指定了消息值的序列化器。生产者在发送消息到 Kafka 主题时,需要将消息的值进行序列化,以便在网络上传输。
该属性对应的值应该是一个实现了 org.apache.kafka.common.serialization.Serializer 接口的类的全限定名。常见的序列化器包括:
StringSerializer: 将消息值序列化为字符串。
ByteArraySerializer: 将消息值序列化为字节数组。
JsonSerializer: 使用 JSON 格式将消息值序列化。
AvroSerializer: 使用 Avro 格式将消息值序列化。
这种引用可以在代码中直接使用KafkaTemplate
private final KafkaTemplate<Object, Object> bridge;
//直接调KafkaTemplate的send方法
// 第一个参数为topic,第二个参数为要发送的消息
bridge.send("topic","message");
2.在卡夫卡提供的类中进行修改配置。通过KafkaProducer
private KafkaProducer<Object, Object> producer;
//需要先配置属性
Properties props = new Properties();
//卡夫卡连接地址
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"xxx,xxx,xxx");
//此处及序列化的信息目前序列化为字符串,将会去掉转义符
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
//消费组
props.put("group.id", "xxx");
props.put("enable.auto.commit", "true");
props.put("auto.commit.interval.ms", "1000");
props.put("session.timeout.ms", "30000");
props.put("auto.offset.reset", "earliest");
this.producer = new KafkaProducer<Object, Object>(props);
//发消息
this.producer.send(new ProducerRecord<Object, Object>("topic", null, JSONUtil.toJsonStr(data)))