Move ConsumerProtocol definition to kafka.coordinator.protocol
This commit is contained in:
@@ -6,7 +6,7 @@ import six
|
|||||||
|
|
||||||
from .abstract import AbstractPartitionAssignor
|
from .abstract import AbstractPartitionAssignor
|
||||||
from ...common import TopicPartition
|
from ...common import TopicPartition
|
||||||
from ..consumer import ConsumerProtocolMemberMetadata, ConsumerProtocolMemberAssignment
|
from ..protocol import ConsumerProtocolMemberMetadata, ConsumerProtocolMemberAssignment
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
import collections
|
import collections
|
||||||
import logging
|
import logging
|
||||||
@@ -6,46 +8,20 @@ import time
|
|||||||
import six
|
import six
|
||||||
|
|
||||||
from .base import BaseCoordinator
|
from .base import BaseCoordinator
|
||||||
import kafka.common as Errors
|
from .protocol import (
|
||||||
from kafka.common import OffsetAndMetadata, TopicPartition
|
ConsumerProtocolMemberMetadata, ConsumerProtocolMemberAssignment,
|
||||||
from kafka.future import Future
|
ConsumerProtocol)
|
||||||
from kafka.protocol.commit import (
|
from ..common import OffsetAndMetadata, TopicPartition
|
||||||
|
from ..future import Future
|
||||||
|
from ..protocol.commit import (
|
||||||
OffsetCommitRequest_v2, OffsetCommitRequest_v1, OffsetCommitRequest_v0,
|
OffsetCommitRequest_v2, OffsetCommitRequest_v1, OffsetCommitRequest_v0,
|
||||||
OffsetFetchRequest_v0, OffsetFetchRequest_v1)
|
OffsetFetchRequest_v0, OffsetFetchRequest_v1)
|
||||||
from kafka.protocol.struct import Struct
|
|
||||||
from kafka.protocol.types import Array, Bytes, Int16, Int32, Schema, String
|
import kafka.common as Errors
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class ConsumerProtocolMemberMetadata(Struct):
|
|
||||||
SCHEMA = Schema(
|
|
||||||
('version', Int16),
|
|
||||||
('subscription', Array(String('utf-8'))),
|
|
||||||
('user_data', Bytes))
|
|
||||||
|
|
||||||
|
|
||||||
class ConsumerProtocolMemberAssignment(Struct):
|
|
||||||
SCHEMA = Schema(
|
|
||||||
('version', Int16),
|
|
||||||
('assignment', Array(
|
|
||||||
('topic', String('utf-8')),
|
|
||||||
('partitions', Array(Int32)))),
|
|
||||||
('user_data', Bytes))
|
|
||||||
|
|
||||||
def partitions(self):
|
|
||||||
return [TopicPartition(topic, partition)
|
|
||||||
for topic, partitions in self.assignment # pylint: disable-msg=no-member
|
|
||||||
for partition in partitions]
|
|
||||||
|
|
||||||
|
|
||||||
class ConsumerProtocol(object):
|
|
||||||
PROTOCOL_TYPE = 'consumer'
|
|
||||||
ASSIGNMENT_STRATEGIES = ('roundrobin',)
|
|
||||||
METADATA = ConsumerProtocolMemberMetadata
|
|
||||||
ASSIGNMENT = ConsumerProtocolMemberAssignment
|
|
||||||
|
|
||||||
|
|
||||||
class ConsumerCoordinator(BaseCoordinator):
|
class ConsumerCoordinator(BaseCoordinator):
|
||||||
"""This class manages the coordination process with the consumer coordinator."""
|
"""This class manages the coordination process with the consumer coordinator."""
|
||||||
DEFAULT_CONFIG = {
|
DEFAULT_CONFIG = {
|
||||||
|
33
kafka/coordinator/protocol.py
Normal file
33
kafka/coordinator/protocol.py
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
from __future__ import absolute_import
|
||||||
|
|
||||||
|
from kafka.common import TopicPartition
|
||||||
|
from kafka.protocol.struct import Struct
|
||||||
|
from kafka.protocol.types import Array, Bytes, Int16, Int32, Schema, String
|
||||||
|
|
||||||
|
|
||||||
|
class ConsumerProtocolMemberMetadata(Struct):
|
||||||
|
SCHEMA = Schema(
|
||||||
|
('version', Int16),
|
||||||
|
('subscription', Array(String('utf-8'))),
|
||||||
|
('user_data', Bytes))
|
||||||
|
|
||||||
|
|
||||||
|
class ConsumerProtocolMemberAssignment(Struct):
|
||||||
|
SCHEMA = Schema(
|
||||||
|
('version', Int16),
|
||||||
|
('assignment', Array(
|
||||||
|
('topic', String('utf-8')),
|
||||||
|
('partitions', Array(Int32)))),
|
||||||
|
('user_data', Bytes))
|
||||||
|
|
||||||
|
def partitions(self):
|
||||||
|
return [TopicPartition(topic, partition)
|
||||||
|
for topic, partitions in self.assignment # pylint: disable-msg=no-member
|
||||||
|
for partition in partitions]
|
||||||
|
|
||||||
|
|
||||||
|
class ConsumerProtocol(object):
|
||||||
|
PROTOCOL_TYPE = 'consumer'
|
||||||
|
ASSIGNMENT_STRATEGIES = ('roundrobin',)
|
||||||
|
METADATA = ConsumerProtocolMemberMetadata
|
||||||
|
ASSIGNMENT = ConsumerProtocolMemberAssignment
|
Reference in New Issue
Block a user