Tôi đã viết một người tiêu dùng Kafka để sử dụng luồng dữ liệu được mã hóa (~ 1 MB) và giải mã chúng trước khi thêm chúng vào nhóm S3. Phải mất ~20 phút để xử lý 1000 bản ghi và nếu tôi xóa logic mã hóa và chạy tương tự, sẽ mất chưa đến 3 phút để xử lý 1000 bản ghi.
Sau đây là các cấu hình tôi hiện đang sử dụng.
allow.auto.create.topics = true
auto.commit.interval.ms = 5000
auto.offset.reset = mới nhất
kiểm tra.crcs = đúng
client.dns.lookup = use_all_dns_ips
kết nối.max.idle.ms = 540000
mặc định.api.timeout.ms = 60000
enable.auto.commit = true
loại trừ.internal.topics = true
tìm nạp.max.byte = 52428800
tìm nạp.max.wait.ms = 500
tìm nạp.min.bytes = 1
nhóm.instance.id = null
nhịp tim.interval.ms = 3000
đánh chặn.classes = []
internal.leave.group.on.close = true
internal.throw.on.fetch.stable.offset.unsupported = false
cô lập.level = read_uncommissi
key.deserializer = lớp org.apache.kafka.common.serialization.StringDeserializer
max.partition.fetch.bytes = 1000000
max.poll.interval.ms = 300000
max.poll.records = 500
siêu dữ liệu.max.age.ms = 300000
metric.reporters = []
số liệu.num.samples = 2
số liệu.recording.level = THÔNG TIN
số liệu.sample.window.ms = 30000
partition.assignment.strategy = [lớp org.apache.kafka.clients.consumer.RangeAssignor]
nhận.buffer.bytes = 655360
kết nối lại.backoff.max.ms = 1000
kết nối lại.backoff.ms = 50
request.timeout.ms = 30000
thử lại.backoff.ms = 100
gửi.buffer.bytes = 131072
phiên.timeout.ms = 10000
value.deserializer = lớp org.apache.kafka.common.serialization.StringDeserializer
Chủ đề có 10 phân vùng. Tôi đã sử dụng với nhiều người tiêu dùng (1-10) bằng cách chỉ định họ vào cùng một nhóm người tiêu dùng. Nhưng cho dù tôi sử dụng bao nhiêu người tiêu dùng, nó cũng tiêu thụ cùng một lượng dữ liệu trong thời gian nhất định.
Làm thế nào để tôi làm cho người tiêu dùng nhanh hơn? Và Apache Spark có thể giúp gì trong việc này không?