java 实现一个kfaka客户端发送消息程序例子要完整的怎么用异步方式启动一个shell脚本
以下是一个使用Java实现的Kafka客户端发送消息的例子:
import org.apache.kafka.clients.producer.*;
import org.apache.kafka.common.serialization.StringSerializer;
import java.util.Properties;
public class KafkaProducerExample {
public static void main(String[] args) {
// 设置Kafka服务器地址和端口
String bootstrapServers = "localhost:9092";
// 创建Kafka生产者的配置
Properties properties = new Properties();
properties.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
properties.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
properties.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
// 创建Kafka生产者实例
KafkaProducer<String, String> producer = new KafkaProducer<>(properties);
// 创建Kafka消息
String topic = "my-topic";
String key = "my-key";
String value = "Hello, Kafka!";
// 创建Kafka记录
ProducerRecord<String, String> record = new ProducerRecord<>(topic, key, value);
// 发送Kafka消息
producer.send(record, new Callback() {
@Override
public void onCompletion(RecordMetadata metadata, Exception exception) {
if (exception == null) {
System.out.println("消息发送成功,偏移量为:" + metadata.offset());
} else {
System.out.println("消息发送失败:" + exception.getMessage());
}
}
});
// 关闭Kafka生产者
producer.close();
}
}
要异步启动一个shell脚本,可以使用Java的ProcessBuilder类来执行命令。以下是一个示例代码:
import java.io.IOException;
public class ShellScriptExample {
public static void main(String[] args) {
try {
// 创建进程构建器
ProcessBuilder processBuilder = new ProcessBuilder("sh", "/path/to/script.sh");
// 启动进程
Process process = processBuilder.start();
// 等待进程执行完成
int exitCode = process.waitFor();
// 检查进程的退出状态
if (exitCode == 0) {
System.out.println("脚本执行成功");
} else {
System.out.println("脚本执行失败");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
请注意替换/path/to/script.sh为您实际的shell脚本路径
原文地址: https://www.cveoy.top/t/topic/iD7s 著作权归作者所有。请勿转载和采集!