在spring中创建kafak生产者
1. Spring中添加kafka的依赖
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
2. 配置文件中添加kafka的连接信息
server.port=8089
server.context-path=/gmall
spring.kafka.bootstrap-servers=hadoop102:9092,hadoop103:9092,hadoop104:9092
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
3. 编写Controloer方法
package com.atguigu.gmalllogger.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gmall.common.constansts.GmallConstants;
import lombok.extern.slf4j.Slf4j;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Slf4j
public class MainController {
@Autowired
private KafkaTemplate<String,String> kafkaTemplate;
@RequestMapping("/log")
public String handleLog(String logString){
JSONObject jsonObject = JSON.parseObject(logString);
jsonObject.put("ts",System.currentTimeMillis());
String jsonString = jsonObject.toJSONString();
log.info(jsonString);
if ("startup".equals(jsonObject.getString("type"))){
kafkaTemplate.send(GmallConstants.KAFKA_TOPIC_STARTUP,jsonString);
}else {
kafkaTemplate.send(GmallConstants.KAFKA_TOPIC_EVENT,jsonString);
}
return "success";
}
}