কীভাবে লিনাক্স ক্রোন জবগুলিকে "অ্যামাজন ওয়ে" তে রূপান্তর করবেন?


112

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

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

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

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

আমার ধারণা এখন পর্যন্ত:

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

আপডেট: প্রশ্ন জিজ্ঞাসার পর থেকে আমি ইউটিউবে অ্যামাজন সিম্পল ওয়ার্কফ্লো সার্ভিস ওয়েবিনার দেখেছি এবং 34:40 এ লক্ষ্য করেছি ( http://www.youtube.com/watch?v=lBUQiek8Jqk#t=34m40s ) আমি একটি ঝলক পেয়েছি নমুনা অ্যাপ্লিকেশন হিসাবে ক্রোন কাজ উল্লেখ স্লাইড। তাদের ডকুমেন্টেশন পৃষ্ঠায়, " অ্যামাজন এসডাব্লুএফএফের জন্য এডাব্লুএস ফ্লো ফ্রেমওয়ার্কের নমুনা ", অ্যামাজন বলেছেন যে তাদের ক্রোনগুলির জন্য নমুনা কোড রয়েছে:

... > ক্রোন জবস এই নমুনায় একটি দীর্ঘ চলমান কর্মপ্রবাহ পর্যায়ক্রমে একটি ক্রিয়াকলাপ চালায়। নতুন মৃত্যুদণ্ড হিসাবে মৃত্যুদন্ড কার্যকর করার দক্ষতা যাতে খুব কার্যকর সময়ের সাথে চালানো যায় তা প্রদর্শিত হয়। ...

আমি জাভা ( http://aws.amazon.com/sdkforjava/ ) এর জন্য এডাব্লুএস এসডিকে ডাউনলোড করেছি এবং নিশ্চিত যে ফোল্ডারগুলির একটি হাস্যকর স্তরগুলির মধ্যে কিছুটা জাভা কোড রয়েছে aws-java-sdk-1.3.6/samples/AwsFlowFramework/src/com/amazonaws/services/simpleworkflow/flow/examples/periodicworkflow) এর মধ্যে যথেষ্ট সমাহিত ।

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


2
সম্ভবত সম্পর্কিত: stackoverflow.com/questions/8812025/scheduling-a-job-on-aws-ec2
Ilmari Karonen

উত্তর:


38

তাদের এই প্রশ্নটি জিজ্ঞাসা করার জন্য আমি অ্যামাজন সোনার সমর্থনের জন্য সাইন আপ করেছি, এটি ছিল তাদের প্রতিক্রিয়া:

টম

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

http://zookeeper.apache.org/doc/r3.2.2/recipes.html

http://highscalability.com/blog/2010/3/22/7-secrets-to-successfully-scaling-with-scalr-on-amazon-by-se.html

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

আরও দেখুন; Google এর নিটোল http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//archive/chubby-osdi06.pdf

যদি এটি সাহায্য করে এবং প্রশ্ন জিজ্ঞাসা করতে নির্দ্বিধায় থাকে তবে আমাকে জানান, আমরা খুব সচেতন যে আমাদের পরিষেবাগুলি শুরু এবং অভিজ্ঞ ed আর্কিটেকচার এবং সেরা অনুশীলনের পরামর্শ দেওয়ার জন্য আমরা সর্বদা খুশি।

শুভেচ্ছান্তে,

রোনান জি। অ্যামাজন ওয়েব সার্ভিসেস


13

আমার মনে হয় এই ভিডিওটি আপনার সঠিক প্রশ্নের উত্তর দিয়েছে - দ্য অ্যাউস ওয়ে (ক্রমাগত এবং দোষ সহনীয়):

অ্যামাজন সিম্পল ওয়ার্কফ্লো সহ ক্লাউডে ক্রোন ব্যবহার করা

ভিডিওর বিবরণ SWF cronjobs বাস্তবায়নে নির্দিষ্ট ব্যবহারের ক্ষেত্রে ব্যবহার সেবা।

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


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

11

ক্রোনজবসের জন্য এসকিউএস ব্যবহারে সতর্ক থাকুন, কারণ তারা গ্যারান্টি দেয় না যে কেবল "একটি কাজ কেবল একটি মেশিন দ্বারা দেখা হয়" by তারা গ্যারান্টি দেয় যে "কমপক্ষে একজন" বার্তাটি পেয়ে যাবে।

থেকে: http://aws.amazon.com/sqs/faqs/# হাও_মানি_টাইমস_উইল_আই_ রিসিভ_আচ_মেসেজ

প্রশ্ন: আমি প্রতিটি বার্তাটি কতবার পাব?

অ্যামাজন এসকিউএস তার সারিতে সমস্ত বার্তা সরবরাহ করতে "কমপক্ষে একবার" সরবরাহ করতে ইঞ্জিনিয়ারড। যদিও বেশিরভাগ সময় প্রতিটি বার্তা আপনার অ্যাপ্লিকেশনটিতে ঠিক একবার সরবরাহ করা হবে, আপনার সিস্টেমটি ডিজাইন করা উচিত যাতে বার্তায় একাধিকবার প্রক্রিয়াকরণ কোনও ত্রুটি বা অসঙ্গতি সৃষ্টি না করে।

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

এই সমাধান সহ সমস্যাগুলি হ'ল:

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

ঠিক আছে, বার্তাগুলি পাওয়ার পরে তারা সার্ভারে থাকে। পরে তাদের মুছতে এটি বিকাশকারীদের। তাদের প্রক্রিয়া চলাকালীন, অন্য সার্ভার দ্বারা এগুলি অ্যাক্সেস করা যায় না।
ফ্রেডেরিক ওয়ার্ডেনস্কোल्ड

2
@ ফ্রেডেরিক ওয়ার্ডেন্সকজল্ড এটি ভুল, একটি ক্লায়েন্টকে কোনও বার্তা দেওয়ার পরেও এটি অন্য একজনকে দেওয়া যেতে পারে, যেহেতু এসকিউএস রাষ্ট্রের প্রতিলিপি অ্যাসিক্রোনাস। এমনকি কোনও বার্তাটির একটি অনুলিপি "পরে" মুছে ফেলা হতে পারে!
ক্রিস পিটম্যান

এই উত্তরটি পুরানো হয়েছে এখন 2 ধরণের সারি রয়েছে। ঠিক একবারে প্রক্রিয়াজাতকরণ পেতে ফিফো ব্যবহার করুন: একটি বার্তা একবার বিতরণ করা হয় এবং কোনও গ্রাহক প্রক্রিয়া না করে এবং এটি মুছে না ফেলা অবধি উপলব্ধ থাকে। নকলগুলি কাতারে প্রবেশ করা যায় না। aws.amazon.com/sqs/features
Lukas Liesis

10

ইলাস্টিক বিয়ানস্টালকের জন্য অ্যামাজন সবেমাত্র নতুন বৈশিষ্ট্য প্রকাশ করেছে । ডক্স থেকে :

এডাব্লুএস ইলাস্টিক বিয়ানস্টাল্ক পরিবেশের
স্তরগুলির জন্য পর্যায়ক্রমিক কার্যগুলিকে সমর্থন করে পরিবেশে পরিবেশগত স্তরগুলির একটি পূর্বনির্ধারিত কনফিগারেশন চালিয়ে যা একটি ধারক স্ট্যাকের সাথে ধারক নামে "v1.2.0" রয়েছে। "

আপনি এখন একটি cron.yamlফাইল সমন্বিত একটি পরিবেশ তৈরি করতে পারেন যা নির্ধারিত কার্যগুলি কনফিগার করে:

version: 1
cron:
- name: "backup-job"          # required - unique across all entries in this file
  url: "/backup"              # required - does not need to be unique
  schedule: "0 */12 * * *"    # required - does not need to be unique
- name: "audit"
  url: "/audit"
   schedule: "0 23 * * *"

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


আপনি কি লিঙ্কগুলি থেকে কিছু সামগ্রী অন্তর্ভুক্ত করতে পারেন?
রবার্ট

6

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

আমাদের ক্ষেত্রে, সম্ভাব্য সমাধানগুলি দেখার পরে, আমরা সিদ্ধান্ত নিয়েছিলাম যে আমাদের দুটি বিকল্প রয়েছে:

  • ক্রোনজব সার্ভার সেট আপ করুন যা সেই কাজগুলিকে চালায় যা একবারে একবারে চালানো উচিত, এটি স্বয়ংক্রিয়ভাবে স্কেল করুন এবং নিশ্চিত করুন যে নির্দিষ্ট ক্লাউডওয়াচের পরিসংখ্যানগুলি তাদের কী হবে না তা পরিবর্তিত হয়ে যায় it's cloud-initক্রোনজবগুলি চালাতে আমরা স্ক্রিপ্টগুলি ব্যবহার করি । অবশ্যই, এটি একটি ডাউনটাইম সহ আসে যা মিস করা ক্রোনজবগুলিতে নেতৃত্ব দেয় (প্রতি মিনিটে নির্দিষ্ট কাজগুলি চালানোর সময়, যেমন আমরা করি)।
  • যে যুক্তি ব্যবহার করে তা rcronব্যবহার করুন। অবশ্যই, যাদুটি সত্যই rcronনিজের মধ্যে নয়, আপনি ব্যর্থ নোড সনাক্ত করার জন্য এটি যে যুক্তি ব্যবহার করেন তা (আমরা keepalivedএখানে ব্যবহার করি ) এবং মাস্টার করার জন্য অন্য নোডটি "আপগ্রেড" করব।

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

অবশ্যই, এই সমাধানটি বিশেষত theতিহ্যবাহী ওয়ান-নোড ক্রোনজব অ্যাপ্রোচ প্রতিস্থাপনের জন্য বোঝানো হয়েছে, যেখানে সময় নির্ধারণকারী ফ্যাক্টর (উদাহরণস্বরূপ "আমি চাকরী এটিকে প্রতিদিন সকাল 5 টায় একবার চালাতে চাই " বা আমাদের ক্ষেত্রে "আমি চাকরি চাই বি" চাই) like প্রতি মিনিটে একবার চালানো " )। আপনি যদি ব্যাচ-প্রসেসিং যুক্তির সূত্রপাত করতে ক্রোনজবস ব্যবহার করেন তবে আপনার সত্যিই একবার নজর দেওয়া উচিত SQS। কোনও সক্রিয়-প্যাসিভ দ্বিধা নেই, এর অর্থ আপনি আপনার সারিটি প্রক্রিয়াজাত করতে কোনও একক সার্ভার বা একটি সম্পূর্ণ কর্মশক্তি ব্যবহার করতে পারেন। আমি SWFআপনার কর্মীশক্তি স্কেলিং সন্ধানের পরামর্শ দিচ্ছি (যদিও auto scalingবেশিরভাগ ক্ষেত্রে কৌশলটিও করতে সক্ষম হতে পারে)।

অন্য তৃতীয় পক্ষের উপর নির্ভর করা এমন কিছু ছিল যা আমরা এড়াতে চেয়েছিলাম।


6

12 / ফেব্রুয়ারী / 16 এ অ্যামাজন এডাব্লুএস ল্যাম্বদা ব্যবহার করে এসএসএইচ কাজের সময় নির্ধারণ সম্পর্কে ব্লগ করেছে । আমি মনে করি এটি প্রশ্নের উত্তর দেয়।


1
এডাব্লুএস ল্যাম্বডা ব্যবহার করে গতিশীল ক্রোনজবস বা সময়সূচি যুক্ত করা কি সম্ভব?
সঞ্জয় কুমার এনএস

হ্যাঁ, আপনি ক্লাউডওয়াচের ইভেন্টের দ্বারা ল্যাম্বডাকে ডেকে আনতে পারেন। আপনি উপযুক্ত দেখতে সময় এটি।
মাইকেল কোয়েল


4

"অ্যামাজন" উপায়টি বিতরণ করা হচ্ছে, যার অর্থ বৃহত ক্রোনগুলি অনেকগুলি ছোট ছোট কাজের মধ্যে বিভক্ত হয়ে সঠিক মেশিনে হস্তান্তর করা উচিত।

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

ফিফো ঠিক একবারে প্রক্রিয়াজাতকরণ : একটি বার্তা একবার সরবরাহ করা হয় এবং কোনও গ্রাহক প্রক্রিয়া না করে এবং এটি মুছে না ফেলা অবধি উপলব্ধ থাকে। নকলগুলি কাতারে প্রবেশ করা যায় না।

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

ব্যাচের চাকরি এমন এক সময় থেকে যখন প্রক্রিয়াজাতকরণের সংস্থান সীমাবদ্ধ ছিল এবং 'লাইভ' পরিষেবাদি প্রাধান্য পেয়েছিল। মেঘের মধ্যে, এটি ক্ষেত্রে হয় না।


ধন্যবাদ - আপনি যে দিকটি বর্ণনা করছেন তা আমি পছন্দ করি।
টম

5
সতর্কতা অবলম্বন করুন যে এসকিউএস কেবল গ্যারান্টি দেয় যে কোনও বার্তা কোনও মেশিন দ্বারা অবশেষে দেখা হবে, এমন নয় যে বার্তাগুলি কেবলমাত্র একটি সার্ভার দ্বারা দেখা যাবে। আপনি যে কোনও কিছু এসকিউএস কাতারে রেখেছেন তা আদর্শবান হওয়া উচিত।
রিচার্ড হার্ট

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

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

1

আপনি কেন নিজের তৈরি করবেন? কোয়ার্টজ (ক্লাস্টার শিডিউলিং সহ) এর মতো কিছু কেন ব্যবহার করবেন না। ডকুমেন্টেশন দেখুন।

http://quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering


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

1

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

চ্যাম্পের মতো কাজ করে।


1

আপনার ক্রোন এক্সপ্রেশনটি অ্যামাজন পথে কাজ করে তা যাচাই করার একটি পদ্ধতি হ'ল ইভেন্ট কমান্ডের মাধ্যমে এটি চালানো। উদাহরণ স্বরূপ:

aws events put-rule --name "DailyLambdaFunction" --schedule-expression "<your_schedule_expression>

যদি আপনার সময়সূচী এক্সপ্রেশন অবৈধ হয়, তবে, এটি ব্যর্থ হবে।

আরও সংস্থানসমূহ: https://docs.aws.amazon.com/cli/latest/references/events/put-rule.html



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