কাফকা: কনজিউমার এপিআই বনাম স্ট্রিমস এপিআই


98

আমি সম্প্রতি কাফকা শিখতে শুরু করেছি এবং এই প্রশ্নগুলি শেষ করছি।

  1. গ্রাহক এবং স্ট্রিমের মধ্যে পার্থক্য কী? আমার জন্য, যদি কোনও সরঞ্জাম / অ্যাপ্লিকেশন কাফকার বার্তাগুলি গ্রাহ্য করে তবে কাফকা বিশ্বের একজন গ্রাহক।

  2. স্ট্রিম কীভাবে আলাদা হয় কারণ এটি কাফকার কাছ থেকে বার্তা গ্রহণ করে বা উত্পাদন করে? এবং কেন এটি প্রয়োজনীয় কারণ আমরা গ্রাহক এপিআই ব্যবহার করে আমাদের নিজস্ব ভোক্তা অ্যাপ্লিকেশনটি লিখতে পারি এবং প্রয়োজন অনুযায়ী তাদের প্রক্রিয়া করতে পারি বা ভোক্তা অ্যাপ্লিকেশন থেকে স্পার্কে প্রেরণ করতে পারি?

আমি এটিতে গুগল করেছি, তবে এর জন্য কোনও ভাল উত্তর পাই নি। দুঃখিত যদি এই প্রশ্নটি খুব তুচ্ছ হয়।

উত্তর:


103

এপ্রিল 09, 2018 আপডেট করুন : আজকাল আপনি কাফকার আপনার ডেটা প্রক্রিয়া করতে কাফকার জন্য ইভেন্ট স্ট্রিমিং ডাটাবেস, কেএসকিএলডিবিও ব্যবহার করতে পারেন । ksqlDB কাফকার স্ট্রিমস এপিআই এর শীর্ষে নির্মিত এবং এটিও "স্ট্রিম" এবং "টেবিল" এর জন্য প্রথম শ্রেণির সমর্থন নিয়ে আসে।

কনজিউমার এপিআই এবং স্ট্রিমস এপিআইয়ের মধ্যে পার্থক্য কী?

কাফকার স্ট্রিমস এপিআই ( https://kafka.apache.org/docamentation/streams/ ) কাফকার প্রযোজক এবং গ্রাহক ক্লায়েন্টদের শীর্ষে নির্মিত। এটি কাফকা গ্রাহক ক্লায়েন্টের তুলনায় উল্লেখযোগ্যভাবে আরও শক্তিশালী এবং আরও অভিব্যক্তিপূর্ণ। কাফকা স্ট্রিমস এপিআই এর কয়েকটি বৈশিষ্ট্য এখানে রয়েছে:

  • ঠিক একবারে প্রক্রিয়াজাতকরণ সমর্থন করে (কাফকা সংস্করণ 0.11+)
  • স্ট্রিমিং যোগ , সমষ্টি এবং উইন্ডোনিং সহ ত্রুটি-সহনশীল স্টেটফুলকে (পাশাপাশি স্টেটলেস হিসাবে অবশ্যই) সমর্থন করে । অন্য কথায়, এটি আপনার আবেদনের প্রক্রিয়াজাতকরণের বাইরে থাকা বাক্সের পরিচালনা সমর্থন করে।
  • ইভেন্ট-টাইম প্রসেসিংয়ের পাশাপাশি প্রসেসিং-সময় এবং ইনজেশন-টাইমের ভিত্তিতে প্রসেসিং সমর্থন করে
  • উভয় স্ট্রিম এবং টেবিলের জন্য প্রথম শ্রেণির সমর্থন রয়েছে , যেখানে স্ট্রিম প্রসেসিং ডাটাবেসের সাথে মিলিত হয়; অনুশীলনে, বেশিরভাগ স্ট্রিম প্রসেসিং অ্যাপ্লিকেশনগুলিকে তাদের নিজ নিজ ব্যবহারের ক্ষেত্রে প্রয়োগের জন্য উভয় স্ট্রিম এবং টেবিলের প্রয়োজন হয়, সুতরাং কোনও স্ট্রিম প্রসেসিং প্রযুক্তির যদি দুটি বিমূর্তির কোনওটির অভাব হয় (তবে, টেবিলগুলির জন্য কোনও সমর্থন নেই) আপনি হয় আটকে আছেন বা নিজে নিজেই এই কার্যকারিতাটি প্রয়োগ করতে হবে (এর সাথে শুভকামনা ...)
  • অন্যান্য অ্যাপ্লিকেশন এবং পরিষেবাগুলিতে সর্বশেষ প্রক্রিয়াকরণ ফলাফলগুলি প্রকাশ করার জন্য ইন্টারঅ্যাকটিভ ক্যোয়ারিকে (যাকে 'ক্যুয়েরেবল স্টেট'ও বলা হয়) সমর্থন করে
  • আরো ভাবপূর্ণ: এটি দিয়ে জাহাজ (1) কার্যকরী প্রোগ্রামিং শৈলী ডিএসএল যেমন অপারেশন সঙ্গে map, filter, reduceসেইসাথে (2) একটি অনুজ্ঞাসূচক শৈলী প্রসেসর এপিআই যেমন জটিল ঘটনা প্রক্রিয়াকরণ (CEP) করছেন জন্য (3) আপনি এমনকি মেশা করতে পারেন, এবং ডিএসএল এবং প্রসেসর এপিআই।

কাফকা স্ট্রিমস এপিআই-তে আরও বিশদ তবে তবুও উচ্চ-স্তরের পরিচিতির জন্য http://docs.confluent.io/current/streams/intrration.html দেখুন , যা আপনাকে নিম্ন স্তরের কাফকা গ্রাহকের সাথে পার্থক্য বুঝতে সহায়তা করবে ক্লায়েন্ট কাফকা স্ট্রিমস এপিআইয়ের জন্য একটি ডকার-ভিত্তিক টিউটোরিয়ালও রয়েছে , যা আমি এই সপ্তাহের প্রথম দিকে ব্লগ করেছি

সুতরাং কাফকা স্ট্রিমস এপিআই এর থেকে আলাদা কীভাবে এটি কাফকার কাছ থেকে বার্তা গ্রহণ করে বা উত্পাদন করে?

হ্যাঁ, কাফকা স্ট্রিমস এপিআই উভয়ই ডেটা পড়ার পাশাপাশি কাফকার কাছে ডেটা লিখতে পারে।

এবং কেন এটি প্রয়োজনীয় কারণ আমরা গ্রাহক এপিআই ব্যবহার করে আমাদের নিজস্ব ভোক্তা অ্যাপ্লিকেশনটি লিখতে পারি এবং প্রয়োজন অনুযায়ী তাদের প্রক্রিয়া করতে পারি বা ভোক্তা অ্যাপ্লিকেশন থেকে স্পার্কে প্রেরণ করতে পারি?

হ্যাঁ, আপনি নিজের ভোক্তা অ্যাপ্লিকেশনটি লিখতে পারেন - যেমনটি আমি উল্লেখ করেছি, কাফকা স্ট্রিমস এপিআই নিজেই কাফকা গ্রাহক ক্লায়েন্ট (প্লাস প্রযোজক ক্লায়েন্ট) ব্যবহার করে - তবে আপনাকে স্ট্রিমস এপিআই সরবরাহ করে এমন সমস্ত অনন্য বৈশিষ্ট্য ম্যানুয়ালি প্রয়োগ করতে হবে । আপনি "ফ্রি" পান এমন কিছুর জন্য উপরের তালিকাটি দেখুন। এটি বরং এটি একটি বিরল পরিস্থিতি যে কোনও ব্যবহারকারী আরও শক্তিশালী কাফকা স্ট্রিমস API এর চেয়ে নিম্ন স্তরের গ্রাহক ক্লায়েন্টটি বেছে নেবে।


8
কোন ক্ষেত্রে কাফকা স্ট্রিমস এপিআই এর উপর কোনও অ্যাপ্লিকেশন কাফকা কনজিউমার এপিআই ব্যবহার করবে?
bhh1988

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

4
আমি মনে করি যে মূল জিনিসটি তাদের পার্থক্য করে সেগুলি স্টোর অ্যাক্সেস করার ক্ষমতা ability একবার আপনি কোনও স্ট্রিমের মধ্যে স্টোর ব্যবহারের শক্তি বুঝতে পারলে আপনি কাফকা স্ট্রিমগুলির শক্তি বুঝতে পারবেন।
যোনাতন কিরন

22

ETL ধরণের বার্তা রূপান্তর সমর্থন করতে কাফকা স্ট্রিম উপাদানটি নির্মিত। বিষয় থেকে স্ট্রিম ইনপুট করার অর্থ অন্য বিষয়গুলিতে রূপান্তর এবং আউটপুট। এটি রিয়েল-টাইম প্রসেসিং সমর্থন করে এবং একই সাথে অগ্রগতি বিশ্লেষণমূলক বৈশিষ্ট্য যেমন সমষ্টি, উইন্ডোটিং, জয়েন ইত্যাদি সমর্থন করে supports

"কাফকা স্ট্রিমস কাফকার প্রযোজক এবং গ্রাহক গ্রন্থাগার তৈরি করে এবং ডেটা সমান্তরালতা, বিতরণ সমন্বয়, ত্রুটি সহিষ্ণুতা এবং অপারেশনাল সরলতার জন্য কাফকার আধ্যাত্মিক দক্ষতা কাজে লাগিয়ে অ্যাপ্লিকেশন বিকাশকে সহজসাধ্য করে তোলে।"

নীচে কাফকা স্ট্রিমের মূল স্থাপত্য বৈশিষ্ট্য রয়েছে। এখানে উল্লেখ করুন

  1. স্ট্রিম পার্টিশন এবং টাস্ক : কাফকা স্ট্রিমগুলি পার্টিশন এবং কার্যগুলির ধারণাগুলি কাফকা বিষয় পার্টিশনের উপর ভিত্তি করে এর সমান্তরালতা মডেলের লজিকাল ইউনিট হিসাবে ব্যবহার করে।
  2. থ্রেডিং মডেল: কাফকা স্ট্রিমস ব্যবহারকারীকে কোনও অ্যাপ্লিকেশন উদাহরণের মধ্যে প্রসেসিংকে সমান্তরাল করতে লাইব্রেরিটি যে থ্রেডগুলি ব্যবহার করতে পারে তার সংখ্যা কনফিগার করতে দেয়।
  3. স্থানীয় স্টেট স্টোর : কাফকা স্ট্রিম তথাকথিত স্টেট স্টোর সরবরাহ করে, যা স্ট্রিম প্রসেসিং অ্যাপ্লিকেশন দ্বারা ডেটা সংরক্ষণ এবং অনুসন্ধানের জন্য ব্যবহার করা যেতে পারে, যা রাষ্ট্রীয় ক্রিয়াকলাপ বাস্তবায়নের সময় একটি গুরুত্বপূর্ণ ক্ষমতা
  4. ফল্ট সহনশীলতা: কাফকা স্ট্রিমস কাফকার মধ্যে স্থানীয়ভাবে সংহত ত্রুটি-সহনশীলতার দক্ষতার উপর ভিত্তি করে। কাফকা পার্টিশনগুলি অত্যন্ত উপলব্ধ এবং প্রতিলিপিযুক্ত, সুতরাং যখন স্ট্রিম ডেটা কাফকার কাছে অব্যাহত থাকে তবে অ্যাপ্লিকেশন ব্যর্থ হয় এবং এটি পুনরায় প্রক্রিয়া করার প্রয়োজন হয় এমনকি এটি উপলব্ধ থাকে।

নীচে আমার বোঝার ভিত্তিতে মূল পার্থক্যগুলি হ'ল আমি যদি কোনও পয়েন্ট হারিয়ে বা ভুল পথে চালিত করে তবে আপডেট করার জন্য আমি উন্মুক্ত am

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

গ্রাহক কোথায় ব্যবহার করবেন - নির্মাতা:

  1. যদি একক গ্রাহক থাকে তবে বার্তা প্রক্রিয়াটি গ্রাস করুন তবে অন্যান্য বিষয়ে ছড়িয়ে পড়ে না।
  2. পয়েন্ট 1 হিসাবে যদি কেবল প্রযোজক প্রযোজক বার্তা থাকে তবে আমাদের কাফকা স্ট্রিমের প্রয়োজন নেই।
  3. যদি একটি কাফকা ক্লাস্টার থেকে গ্রাহক বার্তা তবে বিভিন্ন কাফকা ক্লাস্টারের বিষয়ে প্রকাশিত হয়। সেক্ষেত্রে আপনি কাফকা স্ট্রিম ব্যবহার করতে পারেন তবে বিভিন্ন ক্লাস্টারে বার্তা প্রকাশ করতে আপনাকে আলাদা প্রযোজক ব্যবহার করতে হবে। অথবা কেবল কাফকা গ্রাহক - প্রযোজক প্রক্রিয়া ব্যবহার করুন।
  4. ব্যাচ প্রক্রিয়াকরণ - যদি কোনও বার্তা সংগ্রহের প্রয়োজন হয় বা কোনও ধরণের ব্যাচ প্রক্রিয়াজাত করা হয় তবে এটি একটি স্বাভাবিক traditionalতিহ্যবাহী পদ্ধতি ব্যবহার করা ভাল।

কাফকা স্ট্রিম কোথায় ব্যবহার করবেন:

  1. আপনি যদি একটি বিষয় থেকে বার্তা গ্রহন করেন, অন্য বিষয়গুলিতে রূপান্তর করুন এবং প্রকাশ করুন কাফকা স্ট্রিম সেরা উপযুক্ত।
  2. রিয়েলটাইম প্রসেসিং, রিয়েলটাইম অ্যানালিটিক এবং মেশিন লার্নিং।
  3. রাষ্ট্রীয় রূপান্তর যেমন সমষ্টি, উইন্ডোতে জয়েন করা ইত্যাদি
  4. স্থানীয় স্টেট স্টোর বা মাউন্টেড স্টেট স্টোর যেমন পোর্টওয়ারেক্স ইত্যাদি ব্যবহার করার পরিকল্পনা করছেন
  5. সঠিকভাবে একটি প্রক্রিয়াজাতকরণ শব্দার্থক এবং স্বয়ংক্রিয়ভাবে সংজ্ঞায়িত ফল্ট সহনশীলতা অর্জন করুন।

4
দুর্দান্ত, সত্যই সহায়ক, তবে একটি বড় ভুল আছে, গ্রাহক এবং স্ট্রিমস এপিআই উভয়ের মধ্যে ঠিক একবারে শব্দার্থবিজ্ঞানের উপলব্ধ রয়েছে, তদুপরি EOS নিম্ন স্তরের ভোক্তা / প্রযোজকের জন্য কেবল সেটিংসের একগুচ্ছ, যেমন এই সেটিংসটি তাদের নির্দিষ্ট মানগুলির সাথে একত্রে গ্রুপ হয় group EOS আচরণের গ্যারান্টি দেয়। বর্তমানে আমি ইস্যুগুলি ছাড়াই গ্রাহক এপিআই সহ ইওএস ব্যবহার করছি।
অবধি

হ্যাঁ ঠিক আছে আমরা কাফকা স্ট্রিমে একবারে অর্থগতভাবে সংজ্ঞা দিতে পারি সম্পত্তি নির্ধারণের মাধ্যমে সাধারণ উত্পাদক এবং ভোক্তার জন্য আমাদের একক লেনদেন হিসাবে সমর্থন করার জন্য
আদর্শবান

পরামর্শ অনুযায়ী শব্দাবলীতে পরিবর্তনগুলি করেছেন
sun007

@ sun007, রিয়েলটাইম ক্ষমতাগুলির প্রয়োজন না এমন সাধারণ অ্যাপ্লিকেশনগুলির জন্য কোনটি দ্রুত? এবং এছাড়াও, স্ট্রিমিং ব্যবহার করে কাফকার নেটিভ কার্যকারিতা শীর্ষে অন্য কোনও উচ্চ স্তরের সরঞ্জামের মতো "অতিরিক্ত" রূপান্তর ওভারহেড যুক্ত করে?
নাগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.