公共接入点接入 本节介绍如何使用的公共接入点接入Kafka的方法,文档以Java代码为例。 前提条件 已配置正确的安全组。 已获取连接Kafka实例的地址。 如果Kafka实例未开启自动创建Topic功能,在连接实例前,请先创建Topic。 已创建弹性云服务器,如果使用内网同一个VPC访问实例,请设置弹性云服务器的VPC、子网、安全组与Kafka实例的VPC、子网、安全组一致。 使用内网同一个VPC访问,实例端口为8090,实例连接地址从控制台实例详情菜单处获取,如下图所示。 Maven中引入Kafka客户端 java Kafka实例基于社区版本2.8.2/3.6.2,推荐客户端保持一致。 org.apache.kafka kafkaclients 2.8.2/3.6.2 客户端关键参数 java Properties props new Properties(); props.put(ProducerConfig.BOOTSTRAPSERVERSCONFIG, BROKERADDR); props.put(ProducerConfig.VALUESERIALIZERCLASSCONFIG, StringSerializer.class.getName()); props.put(ProducerConfig.KEYSERIALIZERCLASSCONFIG, StringSerializer.class.getName()); 生产者代码示例 java package com.justin.kafka.service.gw.plain; import org.apache.kafka.clients.producer.Callback; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.producer.ProducerRecord; import org.apache.kafka.clients.producer.RecordMetadata; import org.apache.kafka.common.serialization.StringSerializer; import java.util.Properties; public class Producer { private final KafkaProducer producer; public final static String TOPIC "testtopic"; public final static String BROKERADDR "192.168.0.11:8090,192.168.0.9:8090,192.168.0.10:8090"; public Producer() { Properties props new Properties(); props.put(ProducerConfig.BOOTSTRAPSERVERSCONFIG, BROKERADDR); props.put(ProducerConfig.VALUESERIALIZERCLASSCONFIG, StringSerializer.class.getName()); props.put(ProducerConfig.KEYSERIALIZERCLASSCONFIG, StringSerializer.class.getName()); props.put(ProducerConfig.ACKSCONFIG, "all"); props.put("retries",3); producer new KafkaProducer<>(props); } public void produce() { try { for (int i 0; i (TOPIC, data), new Callback() { public void onCompletion(RecordMetadata metadata, Exception exception) { if (exception ! null) { // TODO: 异常处理 exception.printStackTrace(); return; } System.out.println("produce msg completed, partition id " + metadata.partition()); } }); } } catch (Exception e) { // TODO: 异常处理 e.printStackTrace(); } producer.flush(); producer.close(); } public static void main(String[] args) { Producer producer new Producer(); producer.produce(); } }