Github user srdo commented on the issue:
https://github.com/apache/storm/pull/1825
@liurenjie1024 Okay, it makes sense that having Kafka manage partitions
isn't really necessary since Storm will make sure to keep spout instances
running. I can't speak to how much of an overhead and unpredictability there
really is to making Kafka manage it though, but it's fine by me if we want to
switch to manual management. I can't think of a good reason for supporting both
manual and automatic assignment though.
The reason the old Kafka spout did manual assignment was that automatic
assignment wasn't available on the old APIs as far as I know.
I agree that we shouldn't have two variants of the spout, it just adds
unnecessary complexity. I'd rather we just do a solid manual assignment
implementation and get rid of the automatic code, if we need to switch.
Keep in mind that to be on par with automatic assignment manual assignment
needs to support adding partitions without requiring a spout restart, and
without the spout instances stepping on each others' toes (e.g. avoid
partitions being assigned to two spout instances at once, even while
reassigning).
@hmcl Sure, it's more readable if strategies like this can be sectioned off
in their own classes. If we really have to support both, I think it's nicer if
assignment can be implemented through delegates rather than through subclassing.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---