代码实现:
public static void main(String[] args){
String address = args[0];
String port = args[1];
new Thread(()->{
try{
produceToKafka(address,port);
}catch(Exception e){
system.out.println("写入kafka报错");
e.printStackTrace();
}
}).start();
}
private static void produceToKafka(String address,String port){
Properties prop = new Properties();
properties.put("bootstrap.servers", address+":"+port); // Kafka 集群地址
properties.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
properties.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
// 创建Kafka生产者
Producer<String, String> producer = new KafkaProducer<>(properties);
Pojo data = new Pojo();
data.setName("中文");
data.setId("sdsdjjweweo");
.
.
.
ObjectMapper writer = new ObjectMapper ();
String dataStr = writer.writeValueAsString(data);
producer.send(new ProducerRecord<String,String>("test_topic",null,dataStr));
producer.close(); // 关闭生产者
}
Maven文件配置
略
<build>
<plugins>
//打包配置略
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
问题
在本地运行发送到kafka数据正常,打包在环境上运行出现中文乱码
解决
配置Maven编译配置,设置编译时的编码为utf-8
<build>
<plugins>
//打包配置略
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>