কাফকা কে (সিকিউআরএস) ইভেন্টসটোর হিসাবে ব্যবহার করা হচ্ছে। ভাল ধারণা?


219

যদিও আমি জুড়ে করেছি কাফকা আগে, আমি শুধু সম্প্রতি উপলব্ধি কাফকা সম্ভবত হিসাবে (ভিত্তিতে) একটি ব্যবহার করা যেতে পারে CQRS , eventstore

কাফকা অন্যতম প্রধান পয়েন্ট:

  • ইভেন্ট ক্যাপচারিং / স্টোরিং, অবশ্যই সমস্ত এইচএ।
  • পাব / উপ স্থাপত্য
  • ইভেন্টলগ পুনরায় প্লে করার ক্ষমতা যা নতুন গ্রাহকদের পক্ষে সত্যের পরে সিস্টেমের সাথে নিবন্ধ করার ক্ষমতা দেয়।

স্বীকার্যভাবে আমি 100% সিকিউআরএস / ইভেন্ট সোর্সিংয়ের বিষয়ে পারদর্শী নই তবে ইভেন্টসস্টোরটি কী হওয়া উচিত এটির কাছাকাছি মনে হয়। মজার বিষয় হ'ল: কাফকা ইভেন্টসস্টোর হিসাবে ব্যবহৃত হচ্ছে এমন বিষয়ে সত্যই আমি খুঁজে পাচ্ছি না, তাই সম্ভবত আমি কিছু মিস করছি।

সুতরাং, কাফকার কাছ থেকে হারিয়ে যাওয়া কোনও কিছুর জন্য এটি একটি ভাল ইভেন্টস্টোর হতে পারে? এটা কি কাজ করবে? এটি উত্পাদন? অন্তর্দৃষ্টি, লিঙ্কগুলি ইত্যাদিতে আগ্রহী

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


হাই জিয়ার্ট-জান পূর্ববর্তী ক্ষেত্রে, আপনি এই সমস্যার সাথে কীভাবে মোকাবেলা করেছেন? আমার একটি সম্পর্কিত প্রশ্ন রয়েছে (এখানে উন্মুক্ত: স্ট্যাকওভারফ্লো . com / প্রশ্নস / 5878763637272727/২ )। কাফকার গ্রহণের পরামর্শ দেওয়া বেশিরভাগ লোকেরা অ্যাডেন্ড-লগ অবিচ্ছিন্নতা, উচ্চতর আউটপুট এবং পার্টিশন অর্ডার গ্যারান্টির পয়েন্টগুলির উপর নির্ভর করে বলে মনে হয় I বিষয়গুলির মধ্যে দ্রুত অনুসন্ধানের সাথে সম্পর্কিত সমস্যাগুলি দেখতে পাই (সত্তা "পুনর্নির্মাণের জন্য"), কোনও লেনদেনের পারমাণবিকতা এবং কোনও পার্টিশন ক্রমান্বিত করার আদেশ নেই (100% অর্ডার গ্যারান্টিটি কেবল 1 পার্টিশন-কিলিং সমঝোতা ব্যবহার করে বোঝায়)
টনি _008

শেষ পর্যন্ত এটি জোর করেনি কারণ আমি সেই সাইডপ্রজেক্টটি শেষ করেছি। সুতরাং কোনও স্পষ্ট উত্তর আমি ভয় পাচ্ছি
গের্ত-জানু

উত্তর:


119

কাফকা বলতে বোঝা যাচ্ছে এমন একটি মেসেজিং সিস্টেম যা তাদের ইভেন্টের উদ্ধৃতি দেওয়ার জন্য একটি ইভেন্ট স্টোরের সাথে অনেক মিল রয়েছে:

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

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

হালনাগাদ

কাফকার ডকুমেন্টেশন :

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

আপডেট 2

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


16
আমি কাফকার দিকে তাকিয়ে ছিলাম এবং অন্য একটি উদ্বেগ ছিল: আমি আশাবাদী-সম্মতি সম্পর্কে কিছুই লক্ষ্য করিনি। আদর্শভাবে আমি বলতে পারি: "এই ইভেন্টটিকে আইটেম এন + 1 হিসাবে যুক্ত করুন কেবলমাত্র যদি অবজেক্টটির সর্বাধিক সাম্প্রতিক ইভেন্টটি এন হয়" "
দরিয়েন

2
@ ড্যারিন: আমি সম্ভবত এমন একটি সেটআপ নিয়ে যাচ্ছি যেখানে রেডিস কাফকা ( রেডিস নোটিফিকেশন ব্যবহার করে ) খাওয়ান । যেহেতু রেডিস আশাবাদী সমঝোতার জন্য (ওয়াচ / মাল্টি-এক্সিকিউট ব্যবহার করে) অনুমতি দেয় তাই এটি কাজ করা উচিত
গের্ট-জানুয়ারি

2
@ ড্যারেন আমি ইভেন্ট সোর্সিংয়ের বিশেষজ্ঞ নই, তবে আমার বোঝা ছিল যে সাধারণত বললে আপনার কাছে আশাবাদী সমঝোতার প্রয়োজন হবে না কারণ ঘটনাগুলি alreadyতিহাসিকভাবে ঘটেছে এমন সংজ্ঞা রেকর্ড অনুসারে।
জন

4
@ জন আমি মনে করি যদি আপনার কাছে ইতিমধ্যে বিরোধবিরোধী ইভেন্টগুলির একটি অনুমোদনের অর্ডিং থাকে তবে এটি বোঝায় যে তারা যেখানেই বাস না কেন এটিই আপনার আসল ইভেন্ট-স্টোর প্রযুক্তি এবং কাফকা কেবলমাত্র তাদের বিতরণ করার জন্য একটি মাধ্যমিক ব্যবস্থা হিসাবে ব্যবহৃত হচ্ছে।
মধ্যে Darien

1
এখানে মূল্যবান তথ্যও রয়েছে: groups.google.com/forum/#!topic/dddcqrs/rm02iCfffUY
manuc66

283

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

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

আমি মনে করি আপনি মূলত ইভেন্ট সোর্সিংয়ের জন্য কাফকার ব্যবহার সম্পর্কে খুব বেশি কিছু শোনেন না কারণ ইভেন্ট সোর্সিং পরিভাষাটি ভোক্তাদের ওয়েব স্পেসে খুব বেশি প্রচলিত বলে মনে হয় না যেখানে কাফকা সবচেয়ে জনপ্রিয়।

আমি এখানে কাফকা ব্যবহারের এই স্টাইলটি সম্পর্কে কিছুটা লিখেছি ।


2
সেই লিঙ্কটি পোস্ট করতে যাচ্ছিল :) দুর্দান্ত ব্লগ পোস্ট। এটির মন্তব্য করতে পেরে ভাল হত কারণ আমার অনেক প্রশ্ন রয়েছে। @ গের্ট-জান "" ল্যাম্বদা আর্কিটেকচার "এর দিকেও নজর দিন, এটি বেশ মিল এবং নাম স্টর্ম লেখকের কাছ থেকে দেওয়া হয়েছে, বেশিরভাগ উদাহরণে হাদুপ ভিত্তিক ইভেন্ট লোগো ব্যবহার করে বেশ কয়েকটি উদাহরণ রয়েছে
সেবাস্তিয়ান লরবার

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

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

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

3
@ulerfx ধরে নিচ্ছি আমরা কাফকাকে ইভেন্ট সোর্স সিস্টেমের জন্য স্টোরেজ হিসাবে ব্যবহার করতে চাই কীভাবে আশাবাদী লকিং / কনক্যুরেন্সী বাস্তবায়ন করা উচিত?
ক্রিজিসটফ ব্রানিকি

51

আমি এই কিউএ ফিরে আসতে থাকি। এবং আমি বিদ্যমান উত্তরগুলি যথেষ্ট পরিমাণে খুঁজে পাইনি, তাই আমি এটি উত্তর যুক্ত করছি।

টি এল; ডিআর। হ্যাঁ বা না, আপনার ইভেন্ট স্যোসরিং ব্যবহারের উপর নির্ভর করে।

এখানে দুটি প্রাথমিক ধরণের ইভেন্ট সোর্স সিস্টেম রয়েছে যার সম্পর্কে আমি সচেতন।

ডাউন স্ট্রিম ইভেন্ট প্রসেসর = হ্যাঁ

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

এই প্রসঙ্গে, এটি বোঝা যায় যে কাফকা লোকেরা কেন এটি ইভেন্ট সোর্সিং সমাধান হিসাবে সমর্থন করে। কারণ এটি ইতিমধ্যে এটি কীভাবে ব্যবহৃত হয় তার সাথে বেশ মিল, উদাহরণস্বরূপ, স্ট্রিম ক্লিক করুন। তবে ইভেন্ট সোর্সিং শব্দটি ব্যবহার করে (স্ট্রিম প্রক্রিয়াজাতকরণের বিপরীতে) সম্ভবত দ্বিতীয় ব্যবহারের কথা উল্লেখ করা হচ্ছে ...

সত্যের প্রয়োগ-নিয়ন্ত্রিত উত্স = না

ব্যবসায়িক যুক্তি দিয়ে যাওয়ার জন্য ব্যবহারকারীদের অনুরোধগুলির ফলাফল হিসাবে এই জাতীয় অ্যাপ্লিকেশনটি তার নিজস্ব ইভেন্টগুলি ঘোষণা করে। কাফকা দুটি প্রাথমিক কারণে এই ক্ষেত্রে ভাল কাজ করে না।

সত্তা বিচ্ছিন্নতা অভাব

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

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

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

বিরোধ সনাক্তকরণের অভাব ack

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

আরো তথ্য


মন্তব্য প্রতি আপডেট

মন্তব্যটি মুছে ফেলা হয়েছে, তবে প্রশ্নটি এমন ছিল: লোকেরা ইভেন্ট স্টোরেজের জন্য কী ব্যবহার করে?

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

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

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

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


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

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

1
@ ক্যাসিস্পেকম্যান অনেক সত্তা একটি একক বিভাজন ভাগ করতে পারে। কে বলেছে আপনাকে ইভেন্টের পুনরায় प्ले করে সরাসরি স্টোর স্টোর থেকে সত্তার অবস্থা লোড করতে হবে? লাইন বাই লাইন গ্রেগ ইয়ংয়ের বাস্তবায়ন কঠোরভাবে অনুসরণ না করে একই ধারণা অর্জনের অন্যান্য উপায় রয়েছে।
অ্যান্ড্রু লারসন

1
@ অ্যান্ড্রুলারসন যদি আপনি সত্তা অনুযায়ী ভাগ না করেন তবে সত্তা পর্যায়ে আপনি কীভাবে বিরোধমূলক ঘটনাগুলি রোধ করবেন? যেহেতু আমরা একযোগে দ্বন্দ্বগুলিতে ফিরে এসে পুরো বৃত্তটি নিয়ে এসেছি, তখন সম্ভবত আপনার নিজের নিবন্ধটি মিডিয়ায় বা কীভাবে আপনি কাফকা ব্যবহার করেছেন ইভেন্ট সোর্সিংয়ের জন্য (স্ট্রিম প্রসেসিং নয়) প্রযোজনায় পোস্ট করা উচিত। আপনি এটিকে কীভাবে ভাগ করে এবং সত্তা-স্তরের সম্মতি নিয়ন্ত্রণ ছাড়াই ভাগ করে নিতে পারেন accomp আমি এটি পড়তাম, এবং আমি যদি মতানৈক্য করি তবে মন্তব্যে আপনাকে ট্রোলও করব না।
ক্যাসি স্পিকম্যান

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

20

আপনি কাফকা ইভেন্ট ইভেন্ট হিসাবে ব্যবহার করতে পারেন, তবে আমি এটি করার পরামর্শ দিচ্ছি না, যদিও এটি ভাল পছন্দ মত দেখাচ্ছে:

  • কাফকা অন্তত একবার সরবরাহ করার গ্যারান্টি দেয় এবং ইভেন্ট স্টোরটিতে এমন নকল রয়েছে যা সরিয়ে ফেলা যায় না। আপডেট: আপনি এখানে কেন কাফকার সাথে এতটা কঠোর এবং অবশেষে এই আচরণটি কীভাবে অর্জন করবেন সে সম্পর্কে কিছু সর্বশেষ সংবাদ জানতে পারেন: https://www.confluent.io/blog/exactly-once-semantics-are-possible-heres-how -apache-কাফকা-না-এটা /
  • অপরিবর্তনীয়তার কারণে, যখন অ্যাপ্লিকেশনটি বিকশিত হয় এবং ইভেন্টগুলি রুপান্তরিত করা প্রয়োজন তখন ইভেন্ট স্টোরকে কারচুপি করার কোনও উপায় নেই (অবশ্যই উজানের মতো পদ্ধতি রয়েছে তবে ...)। একবার বলতে পারে আপনার কখনই ইভেন্টগুলি রূপান্তর করতে হবে না, তবে এটি অনুমানটি সঠিক নয়, এমন পরিস্থিতিতেও হতে পারে যেখানে আপনি মূল ব্যাকআপ করেন তবে আপনি সেগুলি সর্বশেষ সংস্করণে আপগ্রেড করেন। ইভেন্ট চালিত আর্কিটেকচারে এটি বৈধ প্রয়োজন।
  • সত্তা / সমষ্টি এবং পুনরায় প্লে করার স্ন্যাপশটগুলি ধরে রাখার কোনও জায়গা ধীর এবং ধীর হয়ে উঠবে না। দীর্ঘমেয়াদী দৃষ্টিকোণ থেকে ইভেন্ট স্টোরের জন্য স্ন্যাপশট তৈরি করা অবশ্যই বৈশিষ্ট্যযুক্ত।
  • প্রদত্ত কাফকা পার্টিশনগুলি বিতরণ করা হয় এবং এগুলি ডেটাবেসগুলির সাথে তুলনা এবং পরিচালনা করতে শক্ত হয়। ডাটাবেসগুলি সহজতর :-)

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

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

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

সম্ভাব্য সমস্যাগুলি সম্পর্কে আরও জানতে দয়া করে ইভেন্টুয়েট.ইও মাইক্রোসার্ফেসিগুলি ওপেন সোর্স ফ্রেমওয়ার্কটি দেখুন: http://eventuate.io/

8 ই ফেব্রুয়ারী 2018 পর্যন্ত আপডেট

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

  1. স্প্রিং ব্যবহার করবেন না - এটি দুর্দান্ত (আমি এটি নিজেকে অনেক বেশি ব্যবহার করি) তবে একই সাথে ভারী এবং ধীর হয়। এবং এটি মোটেও মাইক্রোসারভাইস প্ল্যাটফর্ম নয়। এটি একটি "কার্যকর" একটি কাঠামো যা আপনাকে একটি বাস্তবায়ন করতে সহায়তা করে (এর পিছনে প্রচুর কাজ ..)। অন্যান্য ফ্রেমওয়ার্কগুলি "কেবল" লাইটওয়েট আরএসটি বা জেপিএ বা ভিন্নভাবে ফোকাসযুক্ত ফ্রেমওয়ার্ক। আমি সম্ভবত বেস্ট-ইন-ক্লাসের ওপেন সোর্স সম্পূর্ণ মাইক্রোসার্চিস প্ল্যাটফর্ম উপলব্ধ যা খাঁটি জাভা শিকড়গুলিতে ফিরে আসার প্রস্তাব দিচ্ছি: https://github.com/networknt

আপনি যদি পারফরম্যান্স সম্পর্কে অবাক হন, আপনি নিজেকে বিদ্যমান বেঞ্চমার্ক স্যুটটির সাথে তুলনা করতে পারেন। https://github.com/networknt/microservices-framework-benchmark

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

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

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


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

1.) প্রতিটি বার্তা একবারে এবং একবারে প্রক্রিয়া করা হবে তা নিশ্চিত করার জন্য হ্যাজলকাস্ট। ২) সার্ভিস কোডে _ ভি 2 এর মতো কোনও কিছুই আমার পছন্দ নয়, সুতরাং আপনি পুরানো ইভেন্টগুলি তাদের নতুন সংস্করণে সংরক্ষণাগার তৈরি ও পুনরায় তৈরি করতে ব্যাকআপ করবেন (আপনার কাছে এখনও আসল সত্য রয়েছে), অথবা আপনি সরাসরি ইভেন্টে এই কার্যকারিতাটি আড়াল / বিল্ড করতে পারবেন স্ন্যাপশট কার্যকারিতা সঞ্চয় করুন, তাই আপকাস্টিংয়ের একক পয়েন্ট রয়েছে -> ইভেন্ট স্টোর। এটির জন্য আপনার সমাধানগুলি কী?
কেনসাই

1) কমপক্ষে একবারে + গ্রাহকের উপর আদর্শশক্তি। অর্থাৎ: ইভেন্টটি ইতিমধ্যে দেখা গেছে কিনা তা পরীক্ষা করে দেখুন check যদি তাই এড়িয়ে যান। বা আরও ভাল, আদর্শ পদক্ষেপ কর্ম আছে। অবশ্যই, এটি সবসময় সম্ভব হয় না। 2) আমি কখনও সংস্করণ ইভেন্টগুলির প্রয়োজনের মুখোমুখি হইনি। আমি ঘটনাগুলিকে সর্বদা সত্যের উত্স হিসাবে বিবেচনা করি এবং সেগুলির জন্য আমার যে সমস্ত তথ্য প্রয়োজন সেগুলি অন্তর্ভুক্ত করে। এটি করে, আমি কখনই এমন পরিস্থিতির মুখোমুখি হইনি যেখানে আমার কোনও ইভেন্ট সম্পর্কিত কাঠামো এবং / অথবা ডেটা প্রয়োজন। তবে সম্ভবত ymmv। কোন পরিস্থিতিতে আপনার আসলে আপডেটের ইভেন্টগুলির প্রয়োজন হবে তা শুনতে আগ্রহী।
গিরত-জানুয়ারী

1.) পছন্দের উপায় হতে পারে .. 2.) তারপরে আপনার ডেটা স্ট্রাকচারগুলি শুরু থেকেই নিখুঁত ছিল :-) ভাগ্যবান আপনি, হাহা। আমার বর্তমান প্রজেক্টে আমার এটির প্রয়োজন হবে না তবে আমি কিছু উচ্চ-পারফরম্যান্স জেইই কেবল হালকা ইভেন্ট 4 জি থেকে নেওয়া পদ্ধতির সাথে একত্রিত হয়ে ইভেন্টুয়েট.ওয়ের কাঁটাচামড়ার উপর একটি সম্পূর্ণ প্ল্যাটফর্ম তৈরি করছি ... এই পুরো আলোচনাটি স্ট্যাকওভারফ্লো সম্পর্কে মন্তব্য করার জন্য নয় is , তবে আপনি যদি গভীরতর ডাইভিংয়ের প্রতি আগ্রহী হন তবে আমি এই নিবন্ধটি সুপারিশ করছি: leanpub.com/esversioning/read
কেনসাই

1
কাফকা এখন একবারে ডেলিভারি সমর্থন করে। বুলেট 1 আপডেট করুন
ওয়ান ক্রিকেটার

8

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

সংক্রান্ত:

ইভেন্টলগ পুনরায় প্লে করার ক্ষমতা যা নতুন গ্রাহকদের পক্ষে সত্যের পরে সিস্টেমের সাথে নিবন্ধ করার ক্ষমতা দেয়।

এটি জটিল হতে পারে। আমি এটিকে এখানে বিস্তারিতভাবে কভার করেছি: https://stackoverflow.com/a/48482974/741970


0

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


0

আমি মনে করি আপনাকে কাফকার পক্ষে সমর্থন সহ অ্যাক্সন কাঠামোর দিকে নজর দেওয়া উচিত

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