ibm-cloud - 连接到 Bluemix 上的消息中心超时

标签 ibm-cloud message-hub

我正在尝试连接到消息中心服务。如果我使用 REST API,我可以连接,但当我尝试从 Java 程序连接时,总会出现超时

我正在使用下一个配置:

Properties producerProps = new Properties();
producerProps.put(SslConfigs.SSL_PROTOCOL_CONFIG, "TLSv1.2");
producerProps.put(SslConfigs.SSL_ENABLED_PROTOCOLS_CONFIG, "TLSv1.2");
producerProps.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, "/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/security/cacerts");
producerProps.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, "changeit");
producerProps.put(SslConfigs.SSL_TRUSTSTORE_TYPE_CONFIG, "JKS");
producerProps.put(SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG, "HTTPS");
producerProps.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SSL");

producerProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, org.apache.kafka.common.serialization.ByteArraySerializer.class);
producerProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, org.apache.kafka.common.serialization.ByteArraySerializer.class);
producerProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "kafka01-prod01.messagehub.services.us-south.bluemix.net:9093,kafka02-prod01.messagehub.services.us-south.bluemix.net:9093,kafka03-prod01.messagehub.services.us-south.bluemix.net:9093,kafka04-prod01.messagehub.services.us-south.bluemix.net:9093,kafka05-prod01.messagehub.services.us-south.bluemix.net:9093");
producerProps.put(ProducerConfig.CLIENT_ID_CONFIG, "myApiKey");

KafkaProducer<byte[], byte[]> kafkaProducer = new KafkaProducer<>(producerProps);
ProducerRecord<byte[], byte[]> producerRecord = new ProducerRecord<>("myTopic", "records".getBytes(), "[{ \"value\" : \"test\" }]".getBytes());

RecordMetadata metadata = kafkaProducer.send(producerRecord).get();
System.out.println("Offset: " + metadata.offset());
kafkaProducer.close();

过了一会儿,错误是

Exception in thread "main" java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 231 ms.
at org.apache.kafka.clients.producer.KafkaProducer$FutureFailure.<init>(KafkaProducer.java:706)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:453)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:339)

我使用的是 kafka-clients 版本 0.9.0.0

有什么想法吗?

最佳答案

您看到的异常通常是主题在使用前尚未创建的症状。 Message Hub 不允许自动创建主题 - 必须通过 Bluemix Dashboard 或通过管理 REST 界面以编程方式创建主题。当您收到此错误时,您是否先创建了主题?

如果您还没有找到它们 - 这里是我们示例的链接,其中包括创建主题然后使用 Kafka Java 客户端生成/使用消息的 Java 示例。 https://github.com/ibm-messaging/message-hub-samples

关于ibm-cloud - 连接到 Bluemix 上的消息中心超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34074912/

相关文章:

ibm-cloud - Bluemix 的 Message-Hub 服务上的分区

apache-kafka - 如何清除消息中心主题?

python - 我可以从 Python 调用 Bluemix 消息中心服务吗?

http - 为 bluemix api 调用禁用 HTTP

ruby-on-rails - yaml : unmarshal errors: cannot unmarshal ! !str `https:/...` 到 []string

ruby-on-rails - Rails 日志中的 "object allocation during garbage collection phase"是什么意思?

java - Kafka Streams 在分组和聚合时转换为 KTable 的字符串问题

ios - 无法将通知推送到 iOS9 设备

ibm-cloud - IoT Foundation 和 Node-RED 之间的区别?

java - Apache Kafka 系统错误处理