ฉันได้เขียน Kafka consumer เพื่อใช้สตรีมข้อมูลที่เข้ารหัส (~1MB) และถอดรหัสก่อนที่จะเพิ่มลงในบัคเก็ต S3 ใช้เวลาประมาณ 20 นาทีในการประมวลผล 1,000 เรคคอร์ด และถ้าฉันลบลอจิกการเข้ารหัสและเรียกใช้สิ่งเดียวกัน จะใช้เวลาน้อยกว่า 3 นาทีในการประมวลผล 1,000 เรคคอร์ด
ต่อไปนี้เป็นการกำหนดค่าที่ฉันใช้อยู่
allow.auto.create.topics = จริง
auto.commit.interval.ms = 5,000
auto.offset.reset = ล่าสุด
check.crcs = จริง
client.dns.lookup = use_all_dns_ips
การเชื่อมต่อ max.idle.ms = 540000
default.api.timeout.ms = 60000
enable.auto.commit = จริง
exclud.internal.topics = จริง
fetch.max.bytes = 52428800
fetch.max.wait.ms = 500
fetch.min.bytes = 1
group.instance.id = null
heartbeat.interval.ms = 3000
interceptor.classes = []
internal.leave.group.on.close = จริง
internal.throw.on.fetch.stable.offset.unsupported = เท็จ
isolation.level = read_uncommitted
key.deserializer = คลาส org.apache.kafka.common.serialization.StringDeserializer
max.partition.fetch.bytes = 1000000
max.poll.interval.ms = 300,000
max.poll.records = 500
metadata.max.age.ms = 300000
metric.reporters = []
metrics.num.samples = 2
metrics.recording.level = ข้อมูล
metrics.sample.window.ms = 30000
partition.assignment.strategy = [คลาส org.apache.kafka.clients.consumer.RangeAssignor]
รับ.buffer.bytes = 655360
reconnect.backoff.max.ms = 1,000
reconnect.backoff.ms = 50
request.timeout.ms = 30000
retry.backoff.ms = 100
send.buffer.bytes = 131072
session.timeout.ms = 10,000
value.deserializer = คลาส org.apache.kafka.common.serialization.StringDeserializer
หัวข้อนี้มี 10 พาร์ทิชัน ฉันบริโภคกับผู้บริโภคหลายคน (1-10) โดยกำหนดให้กับผู้บริโภคกลุ่มเดียวกัน แต่ไม่ว่าฉันจะใช้ผู้บริโภคจำนวนเท่าใด มันก็ใช้ปริมาณข้อมูลเท่ากันในเวลาที่กำหนด
ฉันจะทำให้ผู้บริโภคเร็วขึ้นได้อย่างไร และ Apache Spark สามารถช่วยในเรื่องนี้ได้หรือไม่?