main
周文涛 2 years ago
parent d4c39b42db
commit d439758236

@ -40,8 +40,6 @@ import java.util.*;
public class KafkaController { public class KafkaController {
@Resource @Resource
private KafkaUtil kafkaUtil; private KafkaUtil kafkaUtil;
@GetMapping("/test") @GetMapping("/test")
public Result<?> test(){ public Result<?> test(){
String test = (String) CacheManager.get("test"); String test = (String) CacheManager.get("test");
@ -51,13 +49,17 @@ public class KafkaController {
return Result.OK(test); return Result.OK(test);
} }
@GetMapping("/consumer2/{topic}") /*
public Result<?> consumer2(@PathVariable String topic){ *
**/
@GetMapping("/consumer/{topic}")
@ApiOperation(value = "consumer")
public Result<?> getConsumerData(@PathVariable String topic) {
if (StringUtils.isEmpty(topic)) { if (StringUtils.isEmpty(topic)) {
return Result.error("请确认topic是否正确"); return Result.error("请确认topic是否正确");
} }
List<String> resultList = new ArrayList<>(); List<String> resultList = new ArrayList<>();
Consumer<String, String> consumer = new KafkaConsumer<>(kafkaUtil.getSafeConsumerPro()); Consumer<String, String> consumer = new KafkaConsumer<>(kafkaUtil.getSafeConsumerPro(false));
consumer.subscribe(Collections.singletonList(topic)); consumer.subscribe(Collections.singletonList(topic));
ConsumerRecords<String, String> records = consumer.poll(5000); ConsumerRecords<String, String> records = consumer.poll(5000);
JSONArray jsonArray=new JSONArray(); JSONArray jsonArray=new JSONArray();
@ -69,18 +71,110 @@ public class KafkaController {
} }
} }
consumer.close(); consumer.close();
return Result.OK(jsonArray); long newCreateTime =0L;
switch (topic) {
case "guangzhaochuanganqi": {
//光照传感器
List<JSONObject> jsonObjects = jsonArray.toJavaList(JSONObject.class);
List<KafkaConsumerDTO<GuangZhaoChuanGanQiDTO>> kafkaConsumerDTOList;
KafkaConsumerDTO<GuangZhaoChuanGanQiDTO> kafkaConsumerDTO;
//排除掉旧的重复aeid
Map<String, KafkaConsumerDTO<GuangZhaoChuanGanQiDTO>> aeidMap = new HashMap<>();
for (JSONObject jsonObject : jsonObjects) {
kafkaConsumerDTO = jsonObject.toJavaObject(KafkaConsumerDTO.class);
String aeid = kafkaConsumerDTO.getAeid();
String createtimeStr = kafkaConsumerDTO.getCreatetime();
newCreateTime = Long.parseLong(createtimeStr);
KafkaConsumerDTO<GuangZhaoChuanGanQiDTO> kafkaConsumerDTO1 = aeidMap.get(kafkaConsumerDTO.getAeid());
if (kafkaConsumerDTO1 == null) {
aeidMap.put(aeid, kafkaConsumerDTO);
} else {
long createtime = Long.parseLong(kafkaConsumerDTO1.getCreatetime() == null ? "0" : kafkaConsumerDTO1.getCreatetime());
if (StringUtils.isEmpty(kafkaConsumerDTO.getCreatetime())) {
continue;
}
if (createtime >= newCreateTime) {
continue;
}
}
aeidMap.put(aeid, kafkaConsumerDTO);
}
kafkaConsumerDTOList = new ArrayList<>(aeidMap.values());
return Result.OK(kafkaConsumerDTOList);
}
case "kongqizhiliangchuanganqi": {
//空气质量传感器
List<JSONObject> jsonObjects = jsonArray.toJavaList(JSONObject.class);
List<KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO>> kafkaConsumerDTOList;
KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO> kafkaConsumerDTO;
//排除掉旧的重复aeid
Map<String, KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO>> aeidMap = new HashMap<>();
for (JSONObject jsonObject : jsonObjects) {
kafkaConsumerDTO = jsonObject.toJavaObject(KafkaConsumerDTO.class);
String aeid = kafkaConsumerDTO.getAeid();
String createtimeStr = kafkaConsumerDTO.getCreatetime();
newCreateTime = Long.parseLong(createtimeStr);
KafkaConsumerDTO<KongQiZhiLiangChuanGanQiDTO> kafkaConsumerDTO1 = aeidMap.get(kafkaConsumerDTO.getAeid());
if (kafkaConsumerDTO1 == null) {
aeidMap.put(aeid, kafkaConsumerDTO);
} else {
long createtime = Long.parseLong(kafkaConsumerDTO1.getCreatetime() == null ? "0" : kafkaConsumerDTO1.getCreatetime());
if (StringUtils.isEmpty(kafkaConsumerDTO.getCreatetime())) {
continue;
}
if (createtime >= newCreateTime) {
continue;
}
}
aeidMap.put(aeid, kafkaConsumerDTO);
}
kafkaConsumerDTOList = new ArrayList<>(aeidMap.values());
return Result.OK(kafkaConsumerDTOList);
}
case "huanjingjiance": {
//环境监测
List<JSONObject> jsonObjects = jsonArray.toJavaList(JSONObject.class);
List<KafkaConsumerDTO<HuanJingJianCeDTO>> kafkaConsumerDTOList = new ArrayList<>();
KafkaConsumerDTO<HuanJingJianCeDTO> kafkaConsumerDTO;
//排除掉旧的重复aeid
Map<String, KafkaConsumerDTO<HuanJingJianCeDTO>> aeidMap = new HashMap<>();
for (JSONObject jsonObject : jsonObjects) {
kafkaConsumerDTO = jsonObject.toJavaObject(KafkaConsumerDTO.class);
String aeid = kafkaConsumerDTO.getAeid();
String createtimeStr = kafkaConsumerDTO.getCreatetime();
newCreateTime = Long.parseLong(createtimeStr);
KafkaConsumerDTO<HuanJingJianCeDTO> kafkaConsumerDTO1 = aeidMap.get(kafkaConsumerDTO.getAeid());
if (kafkaConsumerDTO1 == null) {
aeidMap.put(aeid, kafkaConsumerDTO);
} else {
long createtime = Long.parseLong(kafkaConsumerDTO1.getCreatetime() == null ? "0" : kafkaConsumerDTO1.getCreatetime());
if (StringUtils.isEmpty(kafkaConsumerDTO.getCreatetime())) {
continue;
}
if (createtime >= newCreateTime) {
continue;
}
}
aeidMap.put(aeid, kafkaConsumerDTO);
}
kafkaConsumerDTOList = new ArrayList<>(aeidMap.values());
return Result.OK(kafkaConsumerDTOList);
}
default:
return Result.error("请确认topic是否正确");
}
} }
@GetMapping("/consumer/{topic}") /*
@ApiOperation(value = "consumer") *
public Result<?> getConsumerData(@PathVariable String topic) { **/
@GetMapping("/consumer2/{topic}")
public Result<?> getConsumerData2(@PathVariable String topic) {
if (StringUtils.isEmpty(topic)) { if (StringUtils.isEmpty(topic)) {
return Result.error("请确认topic是否正确"); return Result.error("请确认topic是否正确");
} }
List<String> resultList = new ArrayList<>(); List<String> resultList = new ArrayList<>();
Consumer<String, String> consumer = new KafkaConsumer<>(kafkaUtil.getSafeConsumerPro()); Consumer<String, String> consumer = new KafkaConsumer<>(kafkaUtil.getSafeConsumerPro(true));
consumer.subscribe(Collections.singletonList(topic)); consumer.subscribe(Collections.singletonList(topic));
ConsumerRecords<String, String> records = consumer.poll(5000); ConsumerRecords<String, String> records = consumer.poll(5000);
JSONArray jsonArray=new JSONArray(); JSONArray jsonArray=new JSONArray();
@ -186,6 +280,8 @@ public class KafkaController {
} }
} }
@PostMapping("/producer") @PostMapping("/producer")
@ApiOperation(value = "producer") @ApiOperation(value = "producer")
public Result<?> postProducerData(@RequestBody JSONObject requestBody){ public Result<?> postProducerData(@RequestBody JSONObject requestBody){

@ -49,12 +49,12 @@ public class KafkaUtil {
//keytool -keystore D:/keystore/client.trustestore.p12 -storepass fEVcb^QFB;IN$K5 -noprompt -alias client.trustestore -import -file D:/keystore/ca.crt -storetype PKCS12 //keytool -keystore D:/keystore/client.trustestore.p12 -storepass fEVcb^QFB;IN$K5 -noprompt -alias client.trustestore -import -file D:/keystore/ca.crt -storetype PKCS12
//keytool -keystore D:/keystore/client.trustestore.p12 -storepass pwd123 -noprompt -alias client.trustestore -import -file D:/keystore/ca.crt -storetype PKCS12 //keytool -keystore D:/keystore/client.trustestore.p12 -storepass pwd123 -noprompt -alias client.trustestore -import -file D:/keystore/ca.crt -storetype PKCS12
public Properties getSafeConsumerPro() { public Properties getSafeConsumerPro(boolean sslFlag) {
Properties properties = new Properties(); Properties properties = new Properties();
properties.setProperty("group.id", "isv-kafka"); properties.setProperty("group.id", "isv-kafka");
properties.setProperty("key.deserializer", StringDeserializer.class.getName()); properties.setProperty("key.deserializer", StringDeserializer.class.getName());
properties.setProperty("value.deserializer", StringDeserializer.class.getName()); properties.setProperty("value.deserializer", StringDeserializer.class.getName());
if (false) { if (sslFlag) {
System.out.println("使用鉴权"); System.out.println("使用鉴权");
properties.setProperty("bootstrap.servers", "10.0.10.153:29553,10.0.10.153:29554"); properties.setProperty("bootstrap.servers", "10.0.10.153:29553,10.0.10.153:29554");
properties.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"dwVendor\" password=\"fEVcb^QFB;IN$K5\";"); properties.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"dwVendor\" password=\"fEVcb^QFB;IN$K5\";");

Loading…
Cancel
Save