在工作中也会遇到需要接收前台发送数据,进行存储的情况。这里以接收日志服务器的日志数据保存到kafka为例。
在数据模拟程序中配置日志要发送的url地址:
dest:
logUrl: http://localhost:8080/app
之后重启数据模拟程序。
在数据接口程序中接收日志并写入kafka。
使用SpringBoot提供的KafkaTemplate可以作为客户端生产者向kafka进行生产操作。
在Service中添加接收数据写入Kafka的方法如下:
public interface DataInterfaceService
{
void sendDataToKafka(String data);
}
编写Service的方法实现:
@Service
public class DataInterfaceServiceImpl implements DataInterfaceService
{
//读取配置文件中dest.topic参数获取要写入的主题
@Value(“${dest.topic}”)
private String topic;
@Autowired
private KafkaTemplate<String,String> kafkaTemplate;
Override public void sendDataToKafka(String data) { kafkaTemplate.send(topic,data); }
}
默认数据模拟程序发送get请求,参数名为logStr,参考数据模拟程序的配置文件。
@RestController public class DataInterfaceController { @Autowired private DataInterfaceService dIService;
@GetMapping(value = “/app”)
public void saveLogToKafka(String logStr){
log.info(logStr);
dIService.sendDataToKafka(logStr);
}
}
打开Kafka客户端进行验证: