用java 多线程技术 模拟100个节点,向Kafka发送数据 ,并3秒后停止
时间: 2023-05-22 16:00:36 浏览: 115
可以使用Java的多线程技术来模拟100个节点向Kafka发送数据,并在3秒后停止。以下是一个简单的示例代码:
```
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class KafkaProducerSimulation {
private static final int NUM_NODES = 100;
private static final String KAFKA_TOPIC = "my-topic";
private static final int NUM_MESSAGES = 1000;
public static void main(String[] args) throws InterruptedException {
ExecutorService executor = Executors.newFixedThreadPool(NUM_NODES);
for (int i = 0; i < NUM_NODES; i++) {
executor.execute(new KafkaProducer(KAFKA_TOPIC, NUM_MESSAGES));
}
Thread.sleep(3000);
executor.shutdownNow();
}
}
class KafkaProducer implements Runnable {
private final String topic;
private final int numMessages;
public KafkaProducer(String topic, int numMessages) {
this.topic = topic;
this.numMessages = numMessages;
}
@Override
public void run() {
// TODO: Implement Kafka producer logic here
System.out.println("Sending " + numMessages + " messages to Kafka topic " + topic);
}
}
```
在这个示例中,我们使用了Java的ExecutorService来创建一个线程池,其中包含100个线程。每个线程都是一个KafkaProducer对象,它会向指定的Kafka主题发送1000条消息。在主线程中,我们等待3秒钟,然后关闭线程池,停止所有的KafkaProducer线程。