কাফকার উপর থেকে রেবিট এমকিউ ব্যবহার করার কোনও কারণ আছে কি?


331

আমাকে কাফকার পরিবর্তে র‌্যাবিট এমকিউ মূল্যায়ন করতে বলা হয়েছে তবে কাফকার চেয়ে আরও ভাল কিছু করছে যে এমন কোনও কারণ খুঁজে পাওয়া খুব কঠিন হয়ে গেছে। থ্রুপুট, স্থায়িত্ব, বিলম্বিতা, বা সহজে ব্যবহারের ক্ষেত্রে এটি কি আরও ভাল কিনা জানেন?


7
প্রাথমিকভাবে মতামত ভিত্তিক, অনেক ভাল প্রশ্ন বিশেষজ্ঞের অভিজ্ঞতার ভিত্তিতে কিছুটা মতামত তৈরি করে, তবে এই প্রশ্নের উত্তরগুলি তথ্য, তথ্যসূত্র বা নির্দিষ্ট দক্ষতার চেয়ে প্রায় সম্পূর্ণরূপে মতামতের উপর নির্ভর করে।
ভিডিএক্স

2
@ গুইলাউম এটি অগত্যা সত্য নয়। কাফকার জন্য অনেক ভাষার জন্য একটি ক্লায়েন্ট উপলব্ধ: cwiki.apache.org/confluence/display/KAFKA/ ক্লায়েন্টস এছাড়াও, কনফ্লুয়েন্ট অন্যান্য ভাষায় অনেক উচ্চ পারফরম্যান্ট ওপেন সোর্স কাফকা ক্লায়েন্ট সরবরাহ করে। "কনফ্লুয়েন্ট ওপেন সোর্স" অফারটি দেখুন: confluent.io/product/compare
ম্যাথিয়াস জে স্যাক্স

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

2
@ গুইলিউম "র্যান্ডম" ওপেন সোর্স ক্লায়েন্টদের জন্য আমি সম্মত; সমস্ত উচ্চতর পারফরম্যান্স নয় (একটি ভাল ক্লায়েন্ট লিখতে এটি বেশ শক্ত) - যে কারণে আমি "এটি অবশ্যই সত্য নয় "। ;) তবে, কনফ্লুয়েন্টের সরবরাহিত সি / সি ++ এবং পাইথন ক্লায়েন্টগুলি উচ্চ থ্রুপুট এবং একে জাভা ক্লায়েন্টগুলির মতো দক্ষ ...
ম্যাথিয়াস জে স্যাক্স

আমি এই ব্লগটি পড়ার সুপারিশ করব: জ্যাক-vanlightly.com/blog/2017/12/4/…
রুট ট্রাভেলার

উত্তর:


467

রাবিটএমকিউ একটি শক্তিশালী, সাধারণ উদ্দেশ্যমূলক বার্তা ব্রোকার যা বিভিন্ন প্রোটোকল যেমন এএমকিউপি, এমকিউটিটি, স্টোমপ ইত্যাদি সমর্থন করে এটি উচ্চ মাধ্যমে আউটপুট পরিচালনা করতে পারে। র‌্যাবিট এমকিউর জন্য সাধারণ ব্যবহারের ক্ষেত্রে হ'ল ব্যাকগ্রাউন্ড জব বা দীর্ঘ-চলমান কাজ যেমন ফাইল স্ক্যানিং , চিত্র স্কেলিং বা পিডিএফ রূপান্তর। র‌্যাবিট এমকিউ মাইক্রোসার্ভেসিসের মধ্যেও ব্যবহৃত হয়, যেখানে এটি অ্যাপ্লিকেশনগুলির মধ্যে যোগাযোগের উপায় হিসাবে বাধাগ্রস্ত হওয়া বার্তাগুলি এড়িয়ে চলার উপায় হিসাবে কাজ করে।

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

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

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

খালি থাকাকালীন রাব্বিটএমকিউর সারিগুলি দ্রুততর হয়, যখন কাফকা খুব অল্প ওভারহেড সহ প্রচুর পরিমাণে ডেটা ধরে রাখে - কাফকা প্রচুর পরিমাণে বার্তাগুলি ধারণ ও বিতরণের জন্য তৈরি করা হয়েছে। (আপনি যদি র‌্যাবিট এমকিউতে খুব দীর্ঘ সারি রাখার পরিকল্পনা করেন তবে আপনার অলস কাতারে একবার নজর রাখা যেতে পারে ))

কাফকা গ্রাউন্ড আপ থেকে অনুভূমিক স্কেলিং (আরও মেশিন যুক্ত করে স্কেল) মাথায় রেখে তৈরি করা হয়েছে, আর রেবিট এমকিউ বেশিরভাগ উল্লম্ব স্কেলিংয়ের জন্য ডিজাইন করা হয়েছে (আরও শক্তি যোগ করে স্কেল)।

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

আরও পঠন এবং কিছু তুলনার তথ্য এখানে পাওয়া যাবে: https://www.cloudamqp.com/blog/2019-12-12- যখন- to-use-rabbitmq-or-apache- kafka.html

শিল্পের কাগজটিরও সুপারিশ করা হচ্ছে: "কাফকা বনাম রাবিট এমকিউ: দুটি শিল্পের রেফারেন্সের তুলনামূলক অধ্যয়ন প্রকাশ / সাবস্ক্রাইব বাস্তবায়ন": http://dl.acm.org/citation.cfm?id=3093908

আমি পরিষেবাতে অ্যাপাচি কাফকা এবং রাবিট এমকিউ উভয়ই সরবরাহ করে এমন একটি সংস্থায় কাজ করি।


31
"হাই-ইনগ্রাইস" এর অর্থ কী?
মার্টিন থোমা

23
হাই-
ইনগ্রেস

6
আমি রবিট এমকিউ সম্পর্কে আপনার বক্তব্যটি "বেশিরভাগ উল্লম্ব স্কেলিংয়ের জন্য ডিজাইন করা" নিয়ে প্রশ্ন করি। কীভাবে ...
রায়ান.বার্টসচ

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

4
"... যদিও কাফকা না করে, এটি গ্রাহকরা ধরে নিয়েছে যে কী খাওয়া হয়েছে এবং কী নয় সেগুলি তার ট্র্যাক রাখে।" এটি ভুল। কাফকা প্রতিটি পৃথক গ্রাহক দ্বারা গ্রাহিত বার্তাগুলির উপর নজর রাখে।
জুকার্দি

36

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

আপনি "ট্র্যাডিশনাল মেসেজিং" এর জন্য কাফকা ব্যবহার করতে পারেন, তবে কাফকা-নির্দিষ্ট পরিস্থিতিতে জন্য এমকিউ ব্যবহার করবেন না।

নিবন্ধ " অ্যাপাচি কাফকা বনাম এন্টারপ্রাইজ সার্ভিস বাস (ইএসবি) বন্ধুরা, শত্রু বা ফ্রেমেনিজ? ( https://www.confluent.io/blog/apache-kafka-vs-enterprise-service-bus-esb-friends-enemies-or-frenemies/ ) "কাফকা কেন প্রতিযোগিতামূলক নয় তবে ইন্টিগ্রেশন এবং বার্তাপ্রেরণের সমাধানের পরিপূরক (RabbitMQ সহ) এবং কীভাবে উভয়কে সংহত করতে হয় rate


30

কাফকা এবং রাব্বিটএমকিউ, যে গ্রাহকরা সেগুলি ব্যবহার করছেন তাদের মধ্যে 5 প্রধান পার্থক্য : এখানে চিত্র বর্ণনা লিখুন

কোন মেসেজিং সিস্টেমটি চয়ন করবেন বা আমাদের বিদ্যমান মেসেজিং সিস্টেমটি পরিবর্তন করা উচিত?

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


5
এই তথ্যের জন্য আপনার উত্স কোথায়? আমি রাবিট এমকিউতে পারফরম্যান্স সম্পর্কিত আপনার জবাবের সাথে একমত নই - এটি কিউ, সংযোগ ইত্যাদির সংখ্যার উপর নির্ভর করে
লভিসা জোহানসন

সঠিক। তবে গড় বৈকল্পিক পরিসীমা উপরে বর্ণিত মতই similar এমন দৃশ্য আছে যেখানে এটি উল্লিখিত ব্যাপ্তির চেয়ে ভাল বা খারাপ করে। রাব্বিটমিক ব্লগ উল্লেখ করুন। সর্বশেষ ডেটা পয়েন্টগুলি রবিটেমক্লু.ব্লগ
শিশির

@ শিশির - আপনি কি আরও বিস্তারিত / লিঙ্কগুলি ভাগ করতে পারেন যা বিভিন্ন বার্তা বিনিময় প্রকারের - ডাইরেক্ট, ফ্যান আউট, পাব / সাব ইত্যাদি ব্যাখ্যা করে? এই শব্দগুলি প্রদত্ত প্রয়োজনীয়তার জন্য সঠিক বার্তাপ্রেরণ প্ল্যাটফর্ম নির্ধারণে সহায়ক হতে পারে। ধন্যবাদ
অ্যান্ডি ডুফ্রেসনে

@ শিশির ২০১২ সালের একটি লিঙ্ক, হ্যাঁ, পরিবর্তিত হতে পারে।
লভিসা জোহানসন

@ অ্যান্ডি ডুফ্রেসনে, কিছুটা দেরি হলেও এখানে একটি লিঙ্ক দেওয়া হয়েছে: ক্লাউডাম্যাকপি.কম
জোহানসন

28

একটি গুরুত্বপূর্ণ পার্থক্য যা আপনি ছেলেরা ভুলে গিয়েছিলেন তা হ'ল খরগোশ এমকিউ হ'ল পুশ বেইসড মেসেজিং সিস্টেম যেখানে কাফকা পুল ভিত্তিক মেসেজিং সিস্টেম। ম্যাসেজিং সিস্টেমকে বিভিন্ন প্রসেসিং ক্ষমতা সহ বিভিন্ন ধরণের গ্রাহককে সন্তুষ্ট করতে হয় এমন দৃশ্যে এটি গুরুত্বপূর্ণ। পুল ভিত্তিক সিস্টেমের মাধ্যমে গ্রাহকরা তাদের সক্ষমতার উপর ভিত্তি করে গ্রাস করতে পারেন যেখানে পুশ সিস্টেমগুলি গ্রাহক অবস্থা নির্বিশেষে বার্তাগুলিকে ধাক্কা দেবে যার ফলে গ্রাহকরা উচ্চ ঝুঁকিতে পড়বেন।


3
আপনি খরগোশ এমকিউ
নিকোলাস

16

রাবিটএমকিউ হ'ল একটি traditional তিহ্যবাহী সাধারণ উদ্দেশ্যে বার্তা ব্রোকার। এটি ওয়েব সার্ভারগুলিকে অনুরোধগুলির দ্রুত প্রতিক্রিয়া জানাতে এবং একাধিক পরিষেবাদিতে বার্তা সরবরাহ করতে সক্ষম করে। প্রকাশকগণ বার্তাগুলি প্রকাশ করতে এবং কাতারে তাদের উপলব্ধ করতে সক্ষম হন, যাতে গ্রাহকরা তাদের পুনরুদ্ধার করতে পারেন। যোগাযোগ হয় অ্যাসিনক্রোনাস বা সিঙ্ক্রোনাস।


অন্যদিকে, এ্যাপাচি কাফকা নয় শুধু একটি বার্তা দালাল। লিঙ্কডইন একটি বার্তা সারি হিসাবে পরিবেশন করার জন্য এটি প্রাথমিকভাবে ডিজাইন ও বাস্তবায়িত করেছিল। ২০১১ সাল থেকে, কাফকা উন্মুক্ত উত্সাহিত হয়ে দ্রুত বিতরণকারী স্ট্রিমিং প্ল্যাটফর্মে রূপান্তরিত হয়েছে, যা রিয়েল-টাইম ডেটা পাইপলাইন এবং স্ট্রিমিং অ্যাপ্লিকেশনগুলির প্রয়োগের জন্য ব্যবহৃত হয়।

এটি অনুভূমিকভাবে স্কেলযোগ্য, ত্রুটি-সহনশীল, দুষ্ট দ্রুত, এবং হাজার হাজার সংস্থায় উত্পাদন চলছে runs

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

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

অ্যাপাচি কাফকা ডেটা পাইপলাইনগুলি ডিক্লোল করে আরও সাধারণ এবং পরিচালনাযোগ্য আর্কিটেকচারের দিকে পরিচালিত করে। কাফকা একটি উচ্চ-মাধ্যমে আউটপুট বিতরণ সিস্টেম হিসাবে কাজ করে যেখানে উত্স পরিষেবাদি ডেটা প্রবাহকে ধাক্কা দেয়, তাদেরকে রিয়েল-টাইমে টানতে লক্ষ্য পরিষেবাগুলির জন্য উপলব্ধ করে তোলে।

এছাড়াও কাফকা ক্লাস্টার পরিচালনার জন্য প্রচুর ওপেন সোর্স এবং এন্টারপ্রাইজ-স্তরের ইউজার ইন্টারফেস এখন উপলভ্য। আরও তথ্যের জন্য আমার নিবন্ধগুলি দেখুন অ্যাপাচি কাফকা ক্লাস্টারগুলির জন্য ইউআই পর্যবেক্ষণ সরঞ্জামগুলির সংক্ষিপ্তসার এবং কেন আপাচি কাফকা?


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


15

আমি জানি এটি কিছুটা দেরি হয়ে গেছে এবং সম্ভবত আপনি ইতিমধ্যে, অপ্রত্যক্ষভাবে বলেছিলেন, কিন্তু আবার, কাফকা মোটেও একটি সারি নয়, এটি একটি লগ (যেমন উপরে কেউ বলেছেন, পোল ভিত্তিক)।

এটিকে সহজ করার জন্য, কাফকার চেয়ে আপনি যখন রবিট এমকিউ (বা কোনও সারি প্রযুক্তি) পছন্দ করবেন তখন সর্বাধিক সুস্পষ্ট ব্যবহারের ক্ষেত্রে নিম্নলিখিতটি রয়েছে:

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

আপনি যে কাজটি করতে পেরেছেন তা সেই ছেলেরা হিসাবে করছিলেন এবং কাফকাকে একটি সারি হিসাবে রূপান্তরিত করার চেষ্টা করুন: https://github.com/softwaremill/kmq

Yannick


10

র‌্যাবিট এমকিউ ব্যবহার করুন যখন:

  • আপনাকে বিগডাটার সাথে পরিচালনা করতে হবে না এবং পর্যবেক্ষণের জন্য আপনি কোনও সুবিধাজনক ইন-বিল্ট ইউআই পছন্দ করেন
  • স্বয়ংক্রিয়ভাবে প্রতিরূপযোগ্য কাতারের প্রয়োজন নেই
  • বার্তাগুলির জন্য একাধিক গ্রাহক নেই - যেহেতু কাফকার মতো নয় যা লগ, র্যাবিট এমকিউ একটি সারি এবং বার্তা গ্রাস হয়ে গেলে এবং স্বীকৃতিটি আসার পরে সরিয়ে ফেলা হয়
  • আপনার যদি বার্তাগুলির জন্য ওয়াইল্ডকার্ড এবং রেজেক্স ব্যবহারের প্রয়োজনীয়তা থাকে
  • মেসেজের অগ্রাধিকারটি নির্ধারণ করা গুরুত্বপূর্ণ

সংক্ষেপে: অগ্রাধিকার সারি এবং নমনীয় রাউটিং বিকল্পগুলির সুবিধার্থে, ডেবিটের কম ট্র্যাফিক সহ সহজ ব্যবহারের ক্ষেত্রে খরগোশ এমকিউ ভাল। বিশাল ডেটা এবং হাই থ্রুপুট জন্য কাফকা ব্যবহার করুন।


একাধিক গ্রাহককে সূক্ষ্মভাবে পরিচালনা করা হয়, একক সারিতে নয় তবে একাধিক এবং সম্ভাব্য গতিশীল কাতারে সজ্জিত। খরগোশ অবশ্যই 'সাধারণ ব্যবহারের ক্ষেত্রে' নয় এটি সম্পূর্ণ আলাদা প্যারাগডিমের জন্য তবে লম্বা সময়ের জন্য ধরে রাখা দরকার এমন বড় ডেটা সেটগুলির চেয়ে কম জটিল নয়। আপনি বার্তা অগ্রাধিকার অংশে প্রসারিত করতে পারেন?
ওয়েন

9

আমি উভয়ের সাথে আমার অভিজ্ঞতার ভিত্তিতে একটি উদ্দেশ্যমূলক উত্তর সরবরাহ করব, আমি ধরে নিচ্ছি যে এটি ইতিমধ্যে আপনি জানেন এবং / অথবা অন্যান্য উত্তর ইতিমধ্যে যথেষ্ট সরবরাহ করেছে ass

রাবিট এমকিউ : আমি যদি চ্যানেল / সারি, সিস্টেম ধরে রাখার এবং স্ট্রিমিংয়ের প্রয়োজনীয়তা না করে সিস্টেম যোগাযোগের সাথে মোকাবিলা করার জন্য প্রয়োজনীয়তাগুলি সহজ হয় তবে আমি এটিকে বেছে নেব। উদাহরণস্বরূপ, যখন উত্পাদন সিস্টেম সম্পদ তৈরি করে তখন চুক্তি সিস্টেমকে চুক্তিগুলি কনফিগার করার জন্য জানায় না।

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


4

একমাত্র উপকার যা আমি ভাবতে পারি তা হ'ল লেনদেনের বৈশিষ্ট্য, বাকী সমস্ত কাফকা ব্যবহার করে করা যায়


2
কাফকার লেনদেন হয়েছে
ওয়ান ক্রিকেটার

2

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


আপনি কীভাবে আরএমকিউকে "কিছুটা জটিলতা" দিয়েছেন তা আমি সম্মত নই যেন মনে হয় কাফকার কম জটিলতা রয়েছে।
কোরি রবিনসন

1

আপনার যদি জটিল রুটিংয়ের প্রয়োজন হয় এবং ব্রোকারকে পর্যবেক্ষণ করার জন্য একটি বিল্ট-ইন জিইউআই চান, তবে রাব্বিটএমকিউ আপনার অ্যাপ্লিকেশনের জন্য সেরা হতে পারে। অন্যথায়, যদি আপনি উচ্চ থ্রুপুট পরিচালনা করতে এবং স্ট্রিমের ইতিহাসে অ্যাক্সেস সরবরাহ করতে কোনও বার্তা ব্রোকারের সন্ধান করেন তবে কাফকা সম্ভবত আরও ভাল পছন্দ।


[+1] ভাল ব্যাখ্যা, আমি নিশ্চিত যে আপনি এগুলি আপনার প্রকল্পগুলিতে ব্যবহার করছেন, আপনি কি এমন কিছু নাম রাখতে পারেন যা অ্যাপ্লিকেশন বার্তার সিস্টেমগুলি মাউন্ট করার ক্ষেত্রে তাদের কোনওটি ব্যবহার করেছেন?
জিঞ্জারহেড

@ জিঞ্জারহিড আমরা একটি রেডিও সংস্থার সাথে কাজ করেছি যা তাদের জিইউআই এবং সেটআপের স্বাচ্ছন্দ্যের জন্য রাবিট এমকিউ ব্যবহার করেছিল। বিকাশকারীদের সহজেই তাদের মাইক্রো সার্ভিসগুলির স্থিতি পরীক্ষা করা খুব ভাল ছিল। একই সংস্থাটি উচ্চ পরিমাণে ডেটা স্ট্রিমের জন্য কাফকাও ব্যবহার করেছিল যার জন্য তিন দিনের বেশি সময় ধরে রাখা দরকার needed আপনি যদি এখানে দুটি প্রযুক্তির মধ্যে পার্থক্য সম্পর্কে আরও পড়তে আগ্রহী হন তবে আমি নিবন্ধটি এই বিষয়টিতে লিখেছি: কাফকা বনাম রাব্বিটএমকিউ নিবন্ধ
মারিয়া হ্যাটফিল্ড

0

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

https://docs.confluent.io/current/ksql/docs/index.html

যেসব সিস্টেমে কম থ্রুটপুট সহ সহজ মেসেজিং সিস্টেমের প্রয়োজন সেখানে র‌্যাবিটমিকিএইচ সিস্টেমের জন্য জনপ্রিয় পছন্দ নয়।


0

আমি বুঝতে পারি যে এটি একটি পুরানো প্রশ্ন, তবে ডেটা রিডাকশনটির সাথে কথা বলার সময় একটি দৃশ্য যেখানে রাব্বিটএমকিউ আরও ভাল পছন্দ হতে পারে।

রব্বিটএমকিউ দিয়ে, একবারে বার্তাটি গ্রাস হয়ে গেলে ডিফল্টরূপে এটি মুছে ফেলা হয়। কাফকার সাথে, ডিফল্টরূপে, বার্তাগুলি এক সপ্তাহের জন্য রাখা হয়। এটিকে অনেক বেশি সময় নির্ধারণ করা, এমনকি এগুলি কখনও মুছে ফেলার পক্ষে সাধারণ।

উভয় পণ্য বার্তাগুলি ধরে রাখতে (বা ধরে রাখতে না পারে) কনফিগার করা যেতে পারে, তবে সিসিপিএ বা জিডিপিআর সম্মতি যদি উদ্বেগজনক হয় তবে আমি রাব্বিটএমকিউয়ের সাথে যাব।


0

থ্রিপুট, স্থায়িত্ব, বিলম্বের ক্ষেত্রে কাফকা রাবিটএমকিউর চেয়ে ভাল। আপনি যদি 10 কে / সেকেন্ডেরও কম লেনদেনের প্রত্যাশা করেন তবে আপনি রাবিট এমকিউতে যেতে পারেন, তবে এটিও আপনার বাস্তবায়নের উপর নির্ভর করে।

আমি আমাদের পণ্যটিতে কাফকা বাস্তবায়ন করেছি যেখানে আমরা 70k / সেকেন্ডের বেশি লেনদেন পরিচালনা করছি এবং বিলম্বতা গড়ে 15 মিমি ছিল কয়েক স্পাইক সহ 40 মিমি অবধি পৌঁছেছিল। টপিকের আকার ছিল 100 কেবি।

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

জটিল রাউটিং ছাড়াই এ থেকে বি স্ট্রিম করুন, সর্বাধিক থ্রুপুট (100 কে / সেকেন্ড +) সহ অন্তত একবার পার্টিশনযুক্ত ক্রমে বিতরণ করা। যখন আপনার অ্যাপ্লিকেশনটির স্ট্রিমের ইতিহাসে অ্যাক্সেসের প্রয়োজন হয়, কমপক্ষে একবারে বিভাগিত ক্রমে ডেলিভারি দেওয়া হয়। কাফকা একটি টেকসই বার্তা স্টোর এবং ক্লায়েন্টরা দাবিতে ইভেন্ট স্ট্রিমের একটি "পুনরায় খেলুন" পেতে পারে, আরও প্রচলিত বার্তা দালালের বিপরীতে যেখানে একবার বার্তা পৌঁছে দেওয়া হয়, এটি সারি থেকে সরিয়ে দেওয়া হয়। স্ট্রিম প্রসেসিং ইভেন্ট সোর্সিং রেবিট এমকিউ হ'ল একটি সাধারণ উদ্দেশ্য বার্তা সমাধান যা ব্যবহারকারী ফলাফলের জন্য অপেক্ষা করার সময় প্রায়শই ওয়েব সার্ভারগুলিকে রিসোর্স-ভারী পদ্ধতিগুলি সম্পাদন করতে বাধ্য করার পরিবর্তে অনুরোধগুলির দ্রুত প্রতিক্রিয়া জানাতে ব্যবহৃত হয়। একাধিক প্রাপককে গ্রাহক ব্যবহারের জন্য বা উচ্চ লোডের অধীনে (20 কে + / সেকেন্ড) ভারসাম্যপূর্ণ ভারসাম্যের জন্য বার্তা বিতরণের জন্যও এটি ভাল for যখন আপনার প্রয়োজনীয়তা থ্রুপুট ছাড়িয়েও প্রসারিত হয়, রাব্বিটএমকিউতে প্রচুর অফার রয়েছে: নির্ভরযোগ্য বিতরণ, রাউটিং, ফেডারেশন, এইচএ, সুরক্ষা, পরিচালন সরঞ্জাম এবং অন্যান্য বৈশিষ্ট্যগুলির বৈশিষ্ট্য। আসুন র‌্যাবিট এমকিউ-র জন্য কিছু পরিস্থিতি সেরা পরীক্ষা করা যাক:

আপনার অ্যাপ্লিকেশনটিতে AMQP 0-9-1, STOMP, এমকিউটিটি, AMQP 1.0 এর মতো বিদ্যমান প্রোটোকলগুলির যেকোন সংমিশ্রনের সাথে কাজ করা দরকার। আপনার প্রতি বার্তা ভিত্তিতে একটি সূক্ষ্ম-দানাযুক্ত সামঞ্জস্যতা নিয়ন্ত্রণ / গ্যারান্টি দরকার (মৃত পত্রের সারি ইত্যাদি) তবে কাফকা সম্প্রতি লেনদেনের জন্য আরও ভাল সমর্থন যোগ করেছেন। আপনার অ্যাপ্লিকেশনটির বিন্দু, অনুরোধ / জবাব, এবং প্রকাশ / সাবস্ক্রাইব মেসেজিং গ্রাহকগণের কাছে জটিল রুটিং, একাধিক পরিষেবা / অ্যাপ্লিকেশনগুলিকে একীভূত করার জন্য অ-তুচ্ছ রাউটিং যুক্তি সহ রবিট এমকিউ উপরের কাফকার বেশ কয়েকটি শক্তিশালী ব্যবহারের ক্ষেত্রে কার্যকরভাবে মোকাবেলা করতে পারে, তবে অতিরিক্ত সফ্টওয়্যার সাহায্য। অ্যাপ্লিকেশন স্ট্রিমের ইতিহাসে অ্যাক্সেসের প্রয়োজন হয় এমন অ্যাপ্লিকেশনগুলির জন্য বা লেভেলডিবি প্লাগইন সহ, যেখানে "অসীম" সারি প্রয়োজন হয়, সেগুলি রাব্বিটএমকিউ প্রায়শই অ্যাপাচি ক্যাসান্দ্রার সাথে ব্যবহার করা হয়, তবে রাবিটএমকিউ নিজেই জাহাজ বৈশিষ্ট্যযুক্ত করে না।


0

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

আমার অভিজ্ঞতা হিসাবে, যদি আপনার কাছে এমন একটি অ্যাপ্লিকেশন থাকে যাতে তথ্যের একটি স্ট্রিমের অনুসন্ধানের প্রয়োজনীয়তা থাকে তবে কাফকা এবং কেএসকিএল আপনার সেরা বাজি। আপনি যদি একটি সারি ব্যবস্থা চান তবে আপনি রাব্বিটএমকিউ দিয়ে আরও ভাল better


0

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

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