কাফকার কী / মান জোড়-ভিত্তিক বার্তাপ্রেরণের উদ্দেশ্য কী? [বন্ধ]


97

সকল উদাহরণ কয়েক কাফকা | প্রযোজক দেন ProducerRecordশুধুমাত্র একই প্রকার (উদাহরণ দেখাতে না থাকার কারণে এর কী / মান জোড়া <String,String>), কিন্তু একই মান । উদাহরণ স্বরূপ:

producer.send(new ProducerRecord<String, String>("someTopic", Integer.toString(i), Integer.toString(i)));

তবে কাফকা ডক্সে, কী / মান ধারণাটি (এবং এর অন্তর্নিহিত উদ্দেশ্য / ইউটিলিটি) কোথায় ব্যাখ্যা করা হয়েছে তা আমি খুঁজে পাচ্ছি না। Traditionalতিহ্যবাহী বার্তায় (অ্যাক্টিভকিউ, রাব্বিটএমকিউ ইত্যাদি) আমি সর্বদা একটি নির্দিষ্ট বিষয় / সারি / এক্সচেঞ্জে একটি বার্তা ফেলেছি। তবে কাফকা হ'ল প্রথম ব্রোকার যা কেবল নিয়মিত 'ওয়াল স্ট্রিং মেসেজের পরিবর্তে কী / মান জোড়গুলির প্রয়োজন বলে মনে হয়।

সুতরাং আমি জিজ্ঞাসা করছি: কেভি জোড়া প্রেরণের জন্য প্রযোজকদের প্রয়োজনীয় প্রয়োজন / উদ্দেশ্য কী?

উত্তর:


93

কাফকা একটি বিতরণ লগের বিমূর্ততা ব্যবহার করে যা পার্টিশন নিয়ে গঠিত । পার্টিশনে একটি লগ বিভক্ত করা সিস্টেমকে স্কেল আউট করতে দেয়।

লগের মধ্যে পার্টিশন নির্ধারণ করতে কীগুলি ব্যবহার করা হয় যেখানে কোনও বার্তা যুক্ত হয়ে যায়। যদিও মানটি বার্তার আসল পেড। উদাহরণগুলি আসলে এই বিষয়ে খুব "ভাল" নয়; সাধারণত আপনার মান হিসাবে জটিল টাইপ থাকে (যেমন টিউপল টাইপ বা জেএসওএন বা অনুরূপ) এবং আপনি কী হিসাবে একটি ক্ষেত্রটি বের করতে পারেন।

দেখুন: http://kafka.apache.org/intro#intro_topics এবং http://kafka.apache.org/intro#intro_producers

সাধারণভাবে কী এবং / অথবা মানটিও হতে পারে null। কীটি nullএলোমেলো পার্টিশনটি নির্বাচিত হবে। মান হয়, তাহলে nullএটা করতে ক্ষেত্রে বিশেষ "মুছে দিন" শব্দার্থবিদ্যা আপনি একটি বিষয় (জন্য লগ-সন্নিবিষ্ট পরিবর্তে লগ-ধারণ নীতি সক্ষম http://kafka.apache.org/documentation#compaction )।


4
আর উল্লেখযোগ্য হল, কি একটি প্রাসঙ্গিক অংশ কাফকা স্ট্রিমিং API এ, সঙ্গে খেলা KStreamএবং KTable- দেখুন এখানে
রিম রিজ

12
পার্টিশন নির্ধারণ করতে কীগুলি ব্যবহার করা যেতে পারে, তবে এটি কেবল নির্মাতার একটি ডিফল্ট কৌশল। শেষ পর্যন্ত, এটি নির্মাতা কে কোন পার্টিশনটি ব্যবহার করবেন তা চয়ন করেন।
gvo

@gvo কীটির আরও ব্যবহার রয়েছে?
লেকনকো

4
লগ কমপ্যাকশন লিঙ্কে উল্লিখিত হিসাবে এটি প্রতি কী বার্তার কেবল একটি উদাহরণ রাখার জন্য ব্যবহার করা যেতে পারে। অন্যান্য ব্যবহারের ক্ষেত্রে আমি জানি না।
gvo

4
আপনি যদি partitionপ্যারামিটারটি নির্দিষ্ট করেন তবে এটি ব্যবহার করা হবে এবং কীটি "উপেক্ষা" করা হবে (বা অবশ্যই, কীটি এখনও বিষয়টিতে লেখা থাকবে)। - এটি আপনার কীগুলি থাকলেও একটি স্বনির্ধারিত পার্টিশন করার অনুমতি দেয়।
ম্যাথিয়াস জে স্যাক্স

17

দেরীতে সংযোজন ... কীটি নির্দিষ্ট করা যাতে একই কীতে থাকা সমস্ত বার্তা একই পার্টিশনে যায় তবে মেসেজ প্রসেসিংয়ের যথাযথ অর্ডারের জন্য যদি আপনার কোনও বিষয়ে গ্রাহক দলের একাধিক গ্রাহক থাকে।

কোনও কী ছাড়াই, একই কীতে দুটি বার্তা বিভিন্ন পার্টিশনে যেতে পারে এবং গ্রুপের বিভিন্ন গ্রাহকরা ক্রমবর্ধমানভাবে প্রক্রিয়া করতে পারেন।


-1

আরও একটি আকর্ষণীয় ব্যবহারের কেস

আমরা কাফকা বিষয়গুলিতে ব্যবহারকারী_আইডিগুলি প্রেরণের জন্য মূল বৈশিষ্ট্যটি ব্যবহার করতে পারি এবং তারপরে স্ট্রিমিং ইভেন্টগুলি (মান বৈশিষ্ট্যগুলিতে সঞ্চিত ইভেন্টগুলি) আনতে কোনও গ্রাহককে প্লাগ করতে পারি। এটি আপনাকে আপনার মেশিন লার্নিং মডেলগুলিতে বৈশিষ্ট্য তৈরির জন্য ব্যবহারকারীর ইভেন্ট ক্রমের সর্বাধিক ইতিহাসের প্রক্রিয়া করার অনুমতি দিতে পারে।

এটি এখনও সম্ভব কিনা তা আমাকে এখনও খুঁজে বের করতে হবে। আমার বিবরণটি আরও বিশদ সহ আপডেট করতে থাকবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.