স্কালার সাথে একটি দ্রুত এবং শক্তিশালী REST এপিআই তৈরি করুন

"বিড়ালের চামড়ার একাধিক উপায় রয়েছে।"

এটি একটি জনপ্রিয় উক্তি এবং মানসিক চিত্রটি বিঘ্নিত হতে পারে, এটি একটি সর্বজনীন সত্য, বিশেষত কম্পিউটার বিজ্ঞানের জন্য।

সুতরাং যা অনুসরণ করা তা হ'ল স্কালায় আরএসটি এপিআই তৈরির উপায়, এটি তৈরির উপায় নয়।

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

কিছু স্থল কাজ

সংক্ষেপে:

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

চ্যালেঞ্জ

REST এপিআই সরবরাহ করবে বলে আশা করা হচ্ছে:

  1. দ্রুত, সুরক্ষিত কল-স্তরের প্রমাণীকরণ এবং অনুমতি নিয়ন্ত্রণ;
  2. দ্রুত ব্যবসায়ের লজিক গণনা এবং I / O;
  3. উপরের সমস্তগুলি উচ্চতর ডিগ্রি কনক্যুরেন্সির সাথে;
  4. আমি কি দ্রুত উল্লেখ করেছি?

পদক্ষেপ 1, প্রমাণীকরণ এবং অনুমতি

প্রমাণীকরণ OAUTH বা OAUTH 2 বা প্রাইভেট / পাবলিক কী সহ প্রমাণীকরণের বৈকল্পিকে প্রয়োগ করা উচিত।

OAUTH2 পদ্ধতির সুবিধা হ'ল আপনি একটি সেশন টোকেন (যা আপনি উপযুক্ত ব্যবহারকারী অ্যাকাউন্ট এবং সেশন পেতে ব্যবহার করতে পারেন) এবং তাত্ক্ষণিকভাবে একটি স্বাক্ষর টোকেন পাবেন that

আমরা এখানেই ধরে নিব যে আমরা এটি ব্যবহার করছি।

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

  1. এখানে আপনি কলার সঠিক ভাগ করা গোপনীয়তা জানেন কিনা তা জানতে পারবেন।
  2. এটি ডেটা ইনজেকশন এবং ম্যান-ইন-মধ্য-আক্রমণের প্রতিরোধ করে;

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

I / O সমর্থন করার জন্য একটি ক্যাশে (মেমক্যাশ? রেডিস?) যোগ করা যেতে পারে এবং অবিচ্ছিন্ন স্ট্যাকের জন্য একটি ব্যয়বহুল ভ্রমণ (মঙ্গো? পোস্টগ্রেস?) আর প্রয়োজন হয় না।

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

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

কোনও ব্যবহারকারীর জন্য সেশন টোকেনটি সমাধান হওয়ার সাথে সাথেই অনুমোদনের স্তরের ব্যবহারকারী ব্যবহারকারীর প্রোফাইলটি ক্যাচ করা যায় এবং সহজেই API কলের জন্য প্রয়োজনীয় অনুমোদনের স্তরের সাথে তুলনা করা যায়।

কোনও এপিআই-এর অনুমোদনের স্তরটি পেতে, একজন ইউআরআইকে বিশ্লেষণ করে আরইএসটি সংস্থান এবং সনাক্তকারী (যদি প্রযোজ্য) এক্সট্রাক্ট করে এবং টাইপটি বের করতে HTTP শিরোনাম ব্যবহার করে।

মনে করুন আপনি কোনও HTTP GET এর মাধ্যমে নিবন্ধিত ব্যবহারকারীদের তাদের প্রোফাইল পেতে অনুমতি দিতে চান

/ এপিআই / ভি 1 / আমি

তারপরে এমন সিস্টেমে কোনও অনুমতি কনফিগারেশন ডকুমেন্টের মতো দেখাবে:

V "ভি 1 / আমি": [{"অ্যাডমিন": ["পেতে", "রাখুন", "পোস্ট", "মুছুন"]}, "" নিবন্ধিত ": [" পাওয়া "," পুট "," পোস্ট ", "মুছুন"]}, Read "কেবলমাত্র পঠন করুন": ["পেতে"]}, {"আটকে" ]}, {"নিবন্ধিত": ["পোস্ট", "মুছুন"]}, {"কেবল পঠনযোগ্য": []}, C "জড়িত": []}]}

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

V "ভি 1 / আমি": [{"অ্যাডমিন": ["পেতে", "পুট", "পোস্ট", "মুছুন"]}, "" নিবন্ধিত ": [" get_owner "," পুট "," পোস্ট ", "মুছুন"]}, Read "পঠন_আপনি": ["get_owner"]}, clo "আটকে" ]}, {"নিবন্ধিত": ["put_owner", "পোস্ট", "মুছুন"]}, write "রাইট-সুরক্ষিত": []}, blocked "অবরুদ্ধ": []}]}

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

/ এপিআই / জমা /

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

প্রয়োগটি এমন অনেকগুলি ক্রিয়াকলাপে আবদ্ধ হতে পারে যা এপিআই-র ব্যবসায়িক যুক্তির সাথে সম্পর্কিত নয় এবং কেবল প্রমাণীকরণ এবং অনুমোদনের প্রয়োগ ও প্রয়োগ করে:

ডিএফ ভ্যালিডেটসেশনটোকেন (সেশনটোকেন: স্ট্রিং) ইউজারপ্রোফাইল = {...} ডিফ চেকপিরমিশন (পদ্ধতি: স্ট্রিং, রিসোর্স: ক্যারেক্টার স্ট্রিং, ইউজার: ইউজারপ্রাইফিল) {... // ত্রুটির ঘটনায় ব্যতিক্রম ছুঁড়ে ফেলেছে
}

এগুলি API কলগুলির স্প্রে.ইও হ্যান্ডলিংয়ের শুরুতে ডাকা হয়:

// দ্রষ্টব্য: প্রোফাইলের রিডার এবং স্যামবিশন রাইটারগুলি এখানে বাদ দেওয়া হয় যদি তারা একে একে অভিনেতাকে প্রসারিত করে।
ডিফ রুট = {পথপ্রিফিক্স ("এপিআই") {
// শিরোনাম এবং এইচটিটিপি তথ্য আহরণ করুন
... var ব্যবহারকারী: ব্যবহারকারীর প্রোফাইলে = নাল চেষ্টা করুন {বৈধতাযুক্ত সেশনটোকেন (সেশনটোকেন)} ধরা (ই: ব্যতিক্রম) {সম্পূর্ণ (সম্পূর্ণ উইথআরার (e.getMessage))}
{চেকপিরমিশন (পদ্ধতি, সংস্থান, ব্যবহারকারীর) চেষ্টা করুন} ধরা (ই: ব্যতিক্রম) {সম্পূর্ণ (সম্পূর্ণ উইথআরার (e.getMessage))}
পাথপ্রিফিক্স ("ভি 1") {পাথ ("আমি") {পেয়েছেন {সম্পূর্ণ (প্রোফাইলরিডার? getUserProfile (User.id))}
}
~ ~ পথ ("জমা দিন") {পোস্ট {
সত্তা ([স্ট্রিং হিসাবে]) {=> জসনস্টার ভ্যাল পেওলোড = পড়ুন [সাবমিট পেয়েল] (জসনস্টার)
সম্পূর্ণ (দাখিলকার? স্যাম্বিট (পেডলোড))
}}
} ...
}

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

পদক্ষেপ 2, ব্যবসায়িক যুক্তি

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

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

এটি একটি খুব শক্তিশালী নকশার দৃষ্টান্ত, তবে, পাঠককে সতর্ক হওয়া উচিত যে একেয়া + স্পারি.আইও আপনাকে অভিনেত্রী কল স্ট্যাকের তিনটি স্তরের বেশি পদক্ষেপ নিতে দেয় না। উদাহরণস্বরূপ, সিস্টেমে যদি এগুলি অভিনেতা হয়:

  1. স্প্রে রাউটারের জন্য এস।
  2. এপিআই হ্যান্ডলারের জন্য একটি।
  3. আই / ও হ্যান্ডলারের জন্য বি।

আপনি এক্স পাবেন? X টি y এবং কলব্যাকের জন্য অনুরোধ করবে এবং x! y এর অর্থ x অগ্নি এবং y ভুলে যাওয়া, এটি কাজ করে:

এস? এক ! খ।

তবে, এটি না:

এস! এক ! খ।

এস? এক ! খ! খ।

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

শেষ অবধি, আমি / ও এবং অধ্যবসায়

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

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

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

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

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

উদাহরণস্বরূপ, ইলাস্টিকসার্কের এইচপি এপিআই স্বরলিপি ব্যবহার করুন:

কার্ল-এক্সপোস্ট 'লোকালহোস্ট: 9200 / জমা / কুকুর / _সুচ? সুন্দর '-d' query "ক্যোয়ারী": {"ফিল্টারড": query "ক্যোয়ারী": {"ম্যাচ_লাল": filter}}, "ফিল্টার": {"অফার": created "তৈরি": {"জিটি": 1464913588000} }}}} '

কুকুরগুলিতে নির্দিষ্ট তারিখের পরে সমস্ত নথি ফিরিয়ে দেয়। আমরা / জমা / মোটরসাইকেলের সমস্ত নথির জন্যও অনুসন্ধান করতে পারি যার নথিতে "ডুকাটি" কাজ রয়েছে।

কার্ল-এক্সপোস্ট 'লোকালহোস্ট: 9200 / জমা / মোটরসাইকেল / _ অনুসন্ধান? সুন্দর '-d' query "ক্যোয়ারী": match "ম্যাচ": text "পাঠ্য": "ডুকাটি"}}} '
ইলাস্টিকসার্ক পড়ার জন্য খুব ভাল যদি সূচিটি ডেটা প্রবেশের আগে সাবধানতার সাথে ডিজাইন করা এবং তৈরি করা হয়। এটি কিছুটা বাধা দিতে পারে, কারণ ইলাস্টিকসার্কের অন্যতম সুবিধা হ'ল ডকুমেন্ট পোস্ট করে এবং ইঞ্জিনকে প্রকার এবং ডেটা কাঠামো আবিষ্কার করার সুযোগ দিয়ে একটি সূচক তৈরির ক্ষমতা। তবে কাঠামো নির্ধারণের সুবিধাগুলি ব্যয়কে ছাড়িয়ে যায়, এবং এটি লক্ষ করা উচিত যে একটি নতুন সূচীতে স্থানান্তর প্রযোজ্য পরিবেশযুক্ত পরিবেশে সহজ।

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

সিদ্ধান্তে

আপনি যদি মেমরি ক্যাচিং এবং / অথবা মেমরি সূচকের সাথে বিবাহ বন্ধনে আবদ্ধ হন তবে উচ্চতর পারফরম্যান্স REST এপিআই তৈরির জন্য স্কালা + আক্কা + স্প্রে.আইও একটি কার্যকর প্রযুক্তি স্ট্যাক।

আমি এমন একটি বাস্তবায়ন নিয়ে কাজ করছি যা এখানে বর্ণিত ধারণাগুলি থেকে খুব বেশি দূরে সরিয়ে নেই, যেখানে নোড প্রতি মিনিট 2000 হিট সবে মাত্র 1% এর উপরে সিপিইউ লোড সরিয়ে নিয়েছে।

বোনাস রাউন্ড: মেশিন লার্নিং এবং আরও অনেক কিছু

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

এই পোস্টে উল্লিখিত প্রযুক্তির লিঙ্কগুলি

  1. http://www.scala-lang.org
  2. http://spray.io
  3. এবং এটি (2) বোধগম্যতার সাথে http://akka.io এ একবার দেখুন