Ответ 1
Я столкнулся с обсуждением в storm-user, в котором обсуждается нечто подобное.
Прочитайте Связь между Spout parallelism и числом разделов kafka.
2 вещи, которые следует учитывать при использовании кафка-носика для шторма
- Максимальный parallelism, который вы можете иметь на KafkaSpout, - это количество разделов.
- Мы можем разделить нагрузку на несколько тем кафки и иметь отдельные экземпляры spout для каждого. то есть. каждый носик обрабатывает отдельную тему.
Итак, если у нас есть случай, когда разделы kafka для каждого узла настроены как 1, а число хостов равно 2. Даже если мы установим носик parallelism как 10, максимальное значение, которое будет проверено, будет только 2, которое количество разделов.
Как указать количество разделов в кафка-носике?
List<HostPort> hosts = new ArrayList<HostPort>();
hosts.add(new HostPort("localhost",9092));
SpoutConfig objConfig=new SpoutConfig(new KafkaConfig.StaticHosts(hosts, 4), "spoutCaliber", "/kafkastorm", "discovery");
Как вы можете видеть, здесь брокеры могут быть добавлены с помощью hosts.add
, а номер partion указан как 4 в фрагменте кода new KafkaConfig.StaticHosts(hosts, 4)
.
Как упомянуть подсказку parallelism в Kafka-spout?
builder.setSpout("spout", spout,4);
Вы можете упомянуть то же самое, добавляя носик в топологию с помощью метода setSpout
. Здесь 4 - подсказка parallelism.
Другие ссылки, которые могут помочь
Understanding-the-parallelism-of-a-Storm-topology
what-is-the-task-in-twitter-storm-parallelism
Отказ: !! Я новичок как в шторме, так и в java!!!! Так PLS изменить/добавить, если его требуется где-то.