Я не могу найти хорошую документацию для правильной интеграции Kafka с Apache Storm Trident. Я попытался изучить связанные ранее опубликованные здесь вопросы, но не получил достаточной информации.
Я хотел бы связать Trident с Kafka как OpaqueTridentKafkaSpout. Вот пример кода, который в настоящее время работает
GlobalPartitionInformation globalPartitionInformation = new GlobalPartitionInformation(properties.getProperty("topic", "mytopic"));
Broker brokerForPartition0 = new Broker("IP1",9092);
Broker brokerForPartition1 = new Broker("IP2", 9092);
Broker brokerForPartition2 = new Broker("IP3:9092");
globalPartitionInformation.addPartition(0, brokerForPartition0);//mapping from partition 0 to brokerForPartition0
globalPartitionInformation.addPartition(1, brokerForPartition1);//mapping from partition 1 to brokerForPartition1
globalPartitionInformation.addPartition(2, brokerForPartition2);//mapping from partition 2 to brokerForPartition2
StaticHosts staticHosts = new StaticHosts(globalPartitionInformation);
TridentKafkaConfig tridentKafkaConfig = new TridentKafkaConfig(hosts,properties.getProperty("topic", "mytopic"));
tridentKafkaConfig.scheme = new SchemeAsMultiScheme(new StringScheme());
OpaqueTridentKafkaSpout kafkaSpout = new OpaqueTridentKafkaSpout(tridentKafkaConfig);
Благодаря этому я могу генерировать потоки для своей топологии, как показано в приведенном ниже коде.
TridentTopology topology = new TridentTopology();
Stream analyticsStream = topology.newStream("spout", kafkaSpout).parallelismHint(Integer.valueOf(properties.getProperty("spout","6")))
Хотя я предоставил параллелизм и свои разделы, работает только 1 исполнитель Kafka Spout, и поэтому я не могу его хорошо масштабировать.
Может ли кто-нибудь помочь мне с лучшими способами интеграции Apache Storm Trident (2.0.0) с Apache Kafka (1.0) с кластером из 3 узлов в каждом?
Кроме того, как только он заканчивает читать из Kafka, я постоянно получаю эти журналы
2018-04-09 14:17:34.119 o.a.s.k.KafkaUtils Thread-15-spout-spout-executor[79 79] [INFO] Metrics Tick: Not enough data to calculate spout lag. 2018-04-09 14:17:34.129 o.a.s.k.KafkaUtils Thread-21-spout-spout-executor[88 88] [INFO] Metrics Tick: Not enough data to calculate spout lag.
И в пользовательском интерфейсе Storm я вижу подтверждения для сообщений выше. Любое предложение игнорировать метрические Ticks?
tridentTopology.newStream("spout", tridentSpout).parallelismHint(2)
17.05.2018