代码:
1.生产者
import org.apache.kafka.clients.producer.Callback;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import java.util.Random;
import java.util.concurrent.ExecutionException;
/**
* kafka线程生产消费数据
* @author linhaiy
* @date 2019.07.05
*/
public class Producer extends Thread {
private final KafkaProducer<Integer, String> producer;
private final String topic;
private final Boolean isAsync;
/**
* 生产者构造函数,初始化配置信息
* @param topic
* @param isAsync
*/
public Producer(String topic, Boolean isAsync) {
Properties props = new Properties();
props.put("bootstrap.servers", "10.0.22.92:9090,10.0.22.93:9090,10.0.22.94:9090");
//新的大数据测试环境
props.put("client.id", "DemoProducer");
props.put("key.serializer", "org.apache.kafka.common.serialization.IntegerSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
producer = new KafkaProducer<>(props);
this.topic = topic;
this.isAsync = isAsync;
}
/**
* 生产执行,发送订阅数据
*/
public void run() {
String gps = "{\"Flag\":true,\"LNG\":117.260818,\"LAT\":39.113755,\"ALT\":10,\"SPD\":50,\"Direction\":46}";
String veh = "{\"Flag\":true,\"SPD\":26,\"RotSpd\":2000,\"CoolantT\":60,\"OilT\":50,\"OilP\":1,\"IntAirP\":1,\"WorkTi\":30,\"Mileage\":3000,\"TotFulConsumption\":1750,\"AvrFulConsumption\":10}";
try {
while (true) {
int messageNo =new Random().nextInt(100) +1;//1-100之间的随机数
JSONObject jsonObj=new JSONObject();
jsonObj.put("UID", messageNo);
jsonObj.put("PubTime", dateToString(new Date()));
jsonObj.put("Body&