Apache Kafka ගැන පළමුවම ඇසෙන විට, "topic", "partition" සහ "offset" කියන වචන ත්රිත්වයක් අපේ ඇසුවට වැටේ. ඒවා එක‑එකින් පෙනෙනවා නමුත්, එකට එක්කොට බලන විට Kafka වැඩි දියුණු, විශ්වාසදායක, ඉහළ throughput එකක් ලබා දෙන්නේ කෙසේදැයි පැහැදිළි වෙනවා.
උදාහරණයක් ලෙස, ඔබේ යෙදුම ලෝකයේ නගරවලින් කාලගුණ තොරතුරු සැමවිටම එවනවා කියලා ගනිමු. එක් එක් නගරයක් සඳහා JSON වර්ගයක් එවන්නේ: {"city":"Nairobi","temperature":17.2,"humidity":75}. මෙම පණිවිඩය සෘජුවම consumer එකකට යන්නේ නැත; එය මුලින්ම Kafka වෙත යැවෙයි.
Kafka තුළ පළමු ගමනක් "topic" එකයි. Topic එකක් යනු සමාන පණිවිඩ එකතු කරන කාණ්ඩයක්. ඔබේ කාලගුණ යෙදුම සඳහා "weather" කියන topic එකක් තබා ගත හැක. Topic එක පණිවිඩ සැකසීමක් නොකර, ඒවා සකස් කර තබන පමණයි.
කාලගුණ තොරතුරු ලෝක පුරා මිලියන ගණනකට ඉක්මවා ඇත්නම්, එක් topic එකක් තුළ සියලු පණිවිඩ එකම ගොනුවකට රැස් කිරීමේදී ලිවීම‑කැඩීමේ bottleneck එකක් උදාවෙයි. මෙන්න "partition" ලාභය: Topic එකට අදාළව එකක් හෝ වැඩි පාර්ශවිකරණයක් (partition) බෙදා දෙනවා. එමඟින් producers එකම වේලාවේ අන්තර්ගත ලියන්න, consumers බහුතරයක් එකම වේලාවේ කියවන්න හැකියාව ලැබේ.
Producer එක key එකක් (උදා: නගර නාමය) සපයනවිට, Kafka ඒ key එක hash කර එකම partition එකට යොමු කරයි. මෙයින් Nairobi නගරයට සම්බන්ධ සියලු පණිවිඩ එකම partition එකේ අනුපිළිවෙලින් තබා, ordering එක රැක ගත හැක. Key එකක් නොදෙන විට, Kafka පණිවිඩ බෙදා හැරීම සමාන ලෙස කරයි.
එක් පාර්ශවිකරණයක් තුළ පණිවිඩ පිළිවෙලට offset නමින් අංකයක් ලබා දෙනවා. Offset එකක් මගින් consumer එක පසුගිය පණිවිඩය කොතෙක් කියවාගෙන තිබේදැයි මතක තබා ගත හැක. Consumer එකක් බිඳ වැටුණත්, offset මත පදනම්ව නැවත ආරම්භ කර ඉදිරිපසට යා හැකිය. මෙයින් Kafka විශ්වාසදායකත්වය සහ historical replay හැකියාව ලබා දෙයි.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තොරතුරු විශ්ලේෂණ, IoT, real‑time analytics වැනි ක්ෂේත්රවල Kafka භාවිතය ඉක්මනින් වර්ධනය වෙමින් පවතී. විශේෂයෙන්:
- ඉගෙනුම් වාසිය: සමාජ විද්යාල සහ විශ්වවිද්යාලවල data streaming පාඨමාලා වල Kafka යෙදීම, සිසුන්ට real‑time data pipelines නිර්මාණය ඉගෙනීමට අවස්ථාව සලසයි.
- ව්යාපාරික ප්රතිලාභ: බැංකු, telecommunication, e‑commerce ආදියට මිලියන ගණනේ transaction logs නවීකරණය කර, downtime අඩු කර, පාරිභෝගික අත්දැකීම් ඉහළ ගත හැක.
- දෙවන පරමාර්ථය: Cloud (AWS, Azure) හා Kubernetes සමඟ Kafka integrate කිරීම, Sri Lankan startups හට scalable micro‑services architecture එකක් සකස් කර ගැනීමට මාර්ගයක් සපයයි.
මෙම තාක්ෂණය හරහා දත්ත ආරක්ෂාව, fault tolerance, සහ දත්ත ප්රතිචාර වේගය වැඩිදියුණු කර, අපේ දේශීය තාක්ෂණික පදනම ශක්තිමත් කරයි.
අවසානයේ, topics, partitions, offsets යන මූලික කරුණු හොඳින් අවබෝධ කර ගැනීම, Kafka භාවිතය සාර්ථක කර ගැනීමට මූලික පියවරක් වේ. ඔබේ අයදුම්පතේ real‑time data flow එකක් සකස් කිරීමට අදම මේ මූලධර්ම අරගෙන පියවර ගන්න.