2017-03-26 35 views

回答

2

我假設您已經知道如何爲SSL配置Kafka。您需要添加SSL加密和SSL驗證的配置設置。基本上,這是一個基本的生產者結構。

Properties props = new Properties(); 
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); 

//configure the following three settings for SSL Encryption 
props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SSL"); 
props.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, "/var/private/ssl/kafka.client.truststore.jks"); 
props.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, "test1234"); 

// configure the following three settings for SSL Authentication 
props.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, "/var/private/ssl/kafka.client.keystore.jks"); 
props.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, "test1234"); 
props.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, "test1234"); 

props.put(ProducerConfig.ACKS_CONFIG, "all"); 
props.put(ProducerConfig.RETRIES_CONFIG, 0); 
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer"); 
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringSerializer"); 

Producer<String, String> producer = new KafkaProducer<String, String>(props); 
TestCallback callback = new TestCallback(); 
Random rnd = new Random(); 
for (long i = 0; i < 100 ; i++) { 
    ProducerRecord<String, String> data = new ProducerRecord<String, String>(
      "test-topic", "key-" + i, "message-"+i); 
    producer.send(data, callback); 
} 

producer.close(); 
+0

你好,我怎樣才能在c#中使用這些全部? – mayk