8 changed files with 104 additions and 23 deletions
Unified View
Diff Options
-
1pom.xml
-
20root-cloud-event/pom.xml
-
27root-cloud-mocker/src/main/java/com/qniao/iot/rc/RootCloudIotDataEventSerialization.java
-
56root-cloud-mocker/src/main/java/com/qniao/iot/rc/RootCloudIotDataEventSourceMocker.java
-
14root-cloud-statistics/pom.xml
-
4root-cloud-statistics/src/main/java/com/qniao/iot/rc/RootCloudIotDataFormatterJob.java
-
3root-cloud-statistics/src/main/java/com/qniao/iot/rc/event/MachineIotDataReceivedEventSerializationSchema.java
-
2root-cloud-statistics/src/main/java/com/qniao/iot/rc/event/RootCloudIotDataReceiptedEventDeserializationSchema.java
@ -0,0 +1,27 @@ |
|||||
|
package com.qniao.iot.rc; |
||||
|
|
||||
|
|
||||
|
import com.fasterxml.jackson.core.JsonProcessingException; |
||||
|
import com.fasterxml.jackson.databind.ObjectMapper; |
||||
|
import org.apache.kafka.clients.producer.ProducerRecord; |
||||
|
|
||||
|
import javax.annotation.Nullable; |
||||
|
|
||||
|
public class RootCloudIotDataEventSerialization { |
||||
|
private static final ObjectMapper objectMapper = new ObjectMapper(); |
||||
|
private final String topic; |
||||
|
|
||||
|
public RootCloudIotDataEventSerialization(String topic) { |
||||
|
this.topic = topic; |
||||
|
} |
||||
|
|
||||
|
public ProducerRecord<String, byte[]> serialize( |
||||
|
final RootCloudIotDataReceiptedEvent message, @Nullable final Long timestamp) { |
||||
|
try { |
||||
|
//if topic is null, default topic will be used |
||||
|
return new ProducerRecord<>(topic, objectMapper.writeValueAsBytes(message)); |
||||
|
} catch (JsonProcessingException e) { |
||||
|
throw new IllegalArgumentException("Could not serialize record: " + message, e); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,56 @@ |
|||||
|
package com.qniao.iot.rc; |
||||
|
|
||||
|
import org.apache.kafka.clients.producer.KafkaProducer; |
||||
|
import org.apache.kafka.clients.producer.ProducerConfig; |
||||
|
import org.apache.kafka.clients.producer.ProducerRecord; |
||||
|
import org.apache.kafka.common.serialization.ByteArraySerializer; |
||||
|
import org.apache.kafka.common.serialization.StringSerializer; |
||||
|
|
||||
|
import java.math.BigDecimal; |
||||
|
import java.util.Properties; |
||||
|
|
||||
|
public class RootCloudIotDataEventSourceMocker { |
||||
|
// 延迟:毫秒 |
||||
|
public static final long DELAY = 3000; |
||||
|
|
||||
|
public static void main(String[] args) throws Exception { |
||||
|
// 创建kafka配置属性 |
||||
|
Properties kafkaProps = createKafkaProperties(); |
||||
|
|
||||
|
// 创建Kafka消息的生产者 |
||||
|
KafkaProducer<String, byte[]> producer = new KafkaProducer<>(kafkaProps); |
||||
|
|
||||
|
String topic = "root_cloud_iot_report_data_event"; |
||||
|
|
||||
|
|
||||
|
// 循环发送事件 |
||||
|
while (true) { |
||||
|
|
||||
|
RootCloudIotDataReceiptedEvent event = new RootCloudIotDataReceiptedEvent(); |
||||
|
event.set__assetId__("10000"); |
||||
|
event.setACC_count(50L); |
||||
|
event.setACC_count_total(500L); |
||||
|
event.setPWR_sta(1); |
||||
|
event.setWorking_sta(1); |
||||
|
event.setStoping_duration("100"); |
||||
|
event.setRunning_duration(new BigDecimal(1250)); |
||||
|
event.setIG_sta(1); |
||||
|
event.setWaiting_duration(new BigDecimal(500)); |
||||
|
ProducerRecord<String, byte[]> record = new RootCloudIotDataEventSerialization(topic).serialize( |
||||
|
event, |
||||
|
null); |
||||
|
|
||||
|
producer.send(record); |
||||
|
|
||||
|
Thread.sleep(DELAY); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private static Properties createKafkaProperties() { |
||||
|
Properties kafkaProps = new Properties(); |
||||
|
kafkaProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "120.25.199.30:9092"); |
||||
|
kafkaProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getCanonicalName()); |
||||
|
kafkaProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, ByteArraySerializer.class.getCanonicalName()); |
||||
|
return kafkaProps; |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save