|
@@ -4,14 +4,16 @@ import org.apache.commons.io.FilenameUtils;
|
|
import org.apache.commons.lang3.SystemUtils;
|
|
import org.apache.commons.lang3.SystemUtils;
|
|
import org.apache.kafka.clients.CommonClientConfigs;
|
|
import org.apache.kafka.clients.CommonClientConfigs;
|
|
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
|
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
|
|
|
+import org.apache.kafka.clients.producer.ProducerConfig;
|
|
import org.apache.kafka.common.config.SaslConfigs;
|
|
import org.apache.kafka.common.config.SaslConfigs;
|
|
import org.apache.kafka.common.config.SslConfigs;
|
|
import org.apache.kafka.common.config.SslConfigs;
|
|
|
|
+import org.apache.kafka.common.serialization.StringSerializer;
|
|
|
|
|
|
import java.util.Properties;
|
|
import java.util.Properties;
|
|
|
|
|
|
public class KafkaConfig {
|
|
public class KafkaConfig {
|
|
|
|
|
|
- public static Properties getKafkaProperties() {
|
|
|
|
|
|
+ public static Properties getKafkaConsumerProperties() {
|
|
var userDir = SystemUtils.getUserDir();
|
|
var userDir = SystemUtils.getUserDir();
|
|
var jksPath = FilenameUtils.concat(userDir.getAbsolutePath(), "conf/only.4096.client.truststore.jks");
|
|
var jksPath = FilenameUtils.concat(userDir.getAbsolutePath(), "conf/only.4096.client.truststore.jks");
|
|
var jaasPath = FilenameUtils.concat(userDir.getAbsolutePath(), "conf/kafka_client_jaas.conf");
|
|
var jaasPath = FilenameUtils.concat(userDir.getAbsolutePath(), "conf/kafka_client_jaas.conf");
|
|
@@ -39,4 +41,30 @@ public class KafkaConfig {
|
|
props.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, 300 * 1000);
|
|
props.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, 300 * 1000);
|
|
return props;
|
|
return props;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public static Properties getKafkaProducerProperties() {
|
|
|
|
+ var userDir = SystemUtils.getUserDir();
|
|
|
|
+ var jksPath = FilenameUtils.concat(userDir.getAbsolutePath(), "conf/only.4096.client.truststore.jks");
|
|
|
|
+ var jaasPath = FilenameUtils.concat(userDir.getAbsolutePath(), "conf/kafka_client_jaas.conf");
|
|
|
|
+ var props = new Properties();
|
|
|
|
+ //根证书store的密码,保持不变。
|
|
|
|
+ //接入协议,目前支持使用SASL_SSL协议接入。
|
|
|
|
+ props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_SSL");
|
|
|
|
+ props.put(CommonClientConfigs.GROUP_ID_CONFIG, "cxzx");
|
|
|
|
+ //SASL鉴权方式,保持不变。
|
|
|
|
+ props.put(SaslConfigs.SASL_MECHANISM, "PLAIN");
|
|
|
|
+ props.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, jksPath);
|
|
|
|
+ //根证书store的密码,保持不变。
|
|
|
|
+ props.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, "KafkaOnsClient");
|
|
|
|
+ props.put(SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG, "");
|
|
|
|
+ System.setProperty("java.security.auth.login.config", jaasPath);
|
|
|
|
+ props.put("bootstrap.servers",
|
|
|
|
+ "alikafka-pre-cn-tl32wxejg003-1.alikafka.aliyuncs.com:9093,alikafka-pre-cn-tl32wxejg003-2.alikafka.aliyuncs.com:9093,alikafka-pre-cn-tl32wxejg003-3.alikafka.aliyuncs.com:9093");
|
|
|
|
+
|
|
|
|
+ props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
|
|
|
|
+ props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return props;
|
|
|
|
+ }
|
|
}
|
|
}
|