8 changed files with 104 additions and 23 deletions
Split 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