4.0.0org.exampleflinkCDC1.0-SNAPSHOTflinkStreamUTF-8881.14.62.122.9.17.6.21.82.12${target.java.version}${target.java.version}2.17.1apache.snapshotsApache Development Snapshot Repositoryhttps://repository.apache.org/content/repositories/snapshots/falseorg.apache.flinkflink-java${flink-version}org.apache.flinkflink-core${flink-version}org.apache.flinkflink-clients_${scala-version}${flink-version}org.apache.flinkflink-connector-kafka_${scala-version}org.slf4jslf4j-log4j12org.apache.kafkakafka-clients${flink-version}org.apache.kafkakafka-clients2.4.1org.apache.maven.pluginsmaven-compiler-plugin3.1${target.java.version}${target.java.version}org.apache.maven.pluginsmaven-shade-plugin3.1.1packageshadefalseorg.apache.flink:flink-shaded-force-shadingcom.google.code.findbugs:jsr305org.slf4j:*org.apache.logging.log4j:**:*META-INF/*.SFMETA-INF/*.DSAMETA-INF/*.RSAmyflinkml.DataStreamJoborg.eclipse.m2elifecycle-mapping1.0.0org.apache.maven.pluginsmaven-shade-plugin[3.1.1,)shadeorg.apache.maven.pluginsmaven-compiler-plugin[3.1,)testCompilecompile
2.2.2 kafka生产者线程方法
package org.example.util;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.util.*;
/**
* 向kafka生产数据
*
* @author i7杨
* @date 2024/01/12 13:02:29
*/
public class KafkaProducerUtil extends Thread {
private String topic;
public KafkaProducerUtil(String topic) {
super();
this.topic = topic;
}
private static Producer createProducer() {
// 通过Properties类设置Producer的属性
Properties properties = new Properties();
// 测试环境 kafka 配置
properties.put("bootstrap.servers", "ip2:9092,ip:9092,ip3:9092");
properties.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
properties.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
return new KafkaProducer(properties);
}
@Override
public void run() {
Producer producer = createProducer();
Random random = new Random();
Random random2 = new Random();
while (true) {
int nums = random.nextInt(10);
int nums2 = random.nextInt(50);
// double nums2 = random2.nextDouble();
String time = new Date().getTime() / 1000 + 5 + "";
String type = "pv";
try {
if (nums2 % 2 == 0) {
type = "pv";
} else {
type = "uv";
}
// String info = "{\"user\":" + nums + ",\"item\":" + nums * 10 + ",\"category\":" + nums2 + ",\"pv\":" + nums2 * 5 + ",\"ts\":\"" + time + "\"}";
String info = nums + "=" + nums2;
System.out.println("message : " + info);
producer.send(new ProducerRecord(this.topic, info));
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("=========数据已经写入==========");
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new KafkaProducerUtil("test01").run();
}
public static void sendMessage(String topic, String message) {
Producer producer = createProducer();
producer.send(new ProducerRecord(topic, message));
}
}