স্টিকি এবং নন-স্টিকি সেশনস


254

আমি স্টিকি এবং নন-স্টিকি সেশনগুলির মধ্যে পার্থক্য জানতে চাই। ইন্টারনেট থেকে পড়ার পরে আমি যা বুঝতে পেরেছি:

স্টিকি : কেবলমাত্র একক সেশন অবজেক্ট থাকবে।

স্টিকি নন : প্রতিটি সার্ভার নোডের জন্য সেশন অবজেক্ট

উত্তর:


612

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

তবে, যদি আপনার ওয়েবসাইটটি একাধিক ওয়েব সার্ভার দ্বারা পরিবেশন করা হয় যা কোনও লোড ব্যালান্সারের পিছনে বসে থাকে তবে লোড ব্যালেন্সার সিদ্ধান্ত নেয় যে প্রতিটি অনুরোধটি কোন প্রকৃত (শারীরিক) ওয়েব-সার্ভারে যাওয়া উচিত। উদাহরণস্বরূপ, লোড ব্যালেন্সারের পিছনে যদি 3 টি সার্ভার এ, বি এবং সি থাকে তবে সম্ভবত সম্ভব যে www.mywebsite.com/index.jsp সার্ভার এ থেকে পরিবেশন করা হয়েছে, www.mywebsite.com/login.jsp থেকে পরিবেশন করা হয়েছে সার্ভার বি এবং www.mywebsite.com/accoutdetails.php সার্ভার সি থেকে পরিবেশন করা হয়

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

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

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

: একটি উদাহরণ হিসাবে, আপনি আমাজনের ইলাস্টিক লোড ব্যালেন্সার এবং চটচটে সেশন সম্পর্কে এখানে পড়তে পারেন http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html


4
@ টিজে- একটি নোড অনুপলব্ধ হলে কী হবে?
gstackoverflow

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

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

6
হ্যাঁ, আপনি একেবারে সঠিক। এই প্রসঙ্গে "এক্স-ফরওয়ার্ড-ফর" শিরোনাম বা একটি স্টিকি-কুকি ব্যবহার করার জন্য , এসএসএল টার্মিনেশন ব্যবহার করা প্রয়োজন এবং তাই অনুরোধটি এলবিতে ডিক্রিপ্ট করা দরকার needs
টিজে-

4
@ g000ze সরাসরি ইন্টারনেটে পরিবেশন না করা অ্যাপ্লিকেশনগুলির সাথে ডিল করার সময়, আমি বিশ্বাস করি যে কেবলমাত্র বাহ্যিকতম প্রক্সি সার্ভারে টিএলএস সক্ষম করা সাধারণ common (একটি লোড ব্যালেন্সারকে সম্ভবত সরলভাবে, বিশেষ ধরণের প্রক্সি সার্ভার হিসাবে বিবেচনা করা যেতে পারে, যে কোনও অনুরোধটি একাধিক সার্ভারের কাছে প্রেরণ করতে পারে)) লোড ব্যালান্সার এবং অন্যান্য সার্ভারের মধ্যে ট্র্যাফিক স্থানীয়, সুরক্ষিত নেটওয়ার্কে ঘটবে will , এবং তাই এটি প্রায়শই এনক্রিপ্ট করা প্রয়োজন হয় না, বা এটি এনক্রিপ্ট করা প্রয়োজন হলে একটি স্ব স্ব স্বাক্ষরযুক্ত শংসাপত্র যথেষ্ট হতে পারে (যেহেতু প্রক্সিটি এটি বিশ্বাস করার জন্য কনফিগার করা যেতে পারে)।
jpmc26

106

আমি এখানে আরও কিছু বিশদ সহ একটি উত্তর দিয়েছি: https://stackoverflow.com/a/11045462/592477

অথবা আপনি এটি সেখানে পড়তে পারেন ==>

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

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

8
হুম .. এটি পড়তে অবাক করে দিয়েছি: চতুর্থ বিকল্প থাকার অর্থ কী হবে না: সেশনটির অনুলিপি সহ স্টিকি নয়? বা অন্যভাবে বলা যায়: যদি কোনও স্টেশনের বিভিন্ন উপায়ে প্রতিলিপি তৈরি করে তবে একটি স্টিকি সেশন থাকার সুবিধা কী? আমি বলতে চাইছি, যদি আপনি উদাহরণগুলি জুড়ে সেশনগুলি প্রতিলিপি করছেন, আপনি ঠিক ঠিক কোনও সার্ভারে অনুরোধটি ফরোয়ার্ড করতে পারেন? আমি কী মিস করছি?
ডিঙ্গালপাদুম

@ উদালাপাদুম আপনি ঠিক বলেছেন, তাত্ত্বিকভাবে আপনি স্টিকি-সেশন ছাড়াই সেশনটির প্রতিলিপি পেতে পারেন। তবে বড় ক্লাস্টারের ক্ষেত্রে এটি নেটওয়ার্ক পারফরম্যান্সের পক্ষে খারাপ। তারপরে টমক্যাট ( টমক্যাট.এপাচি.আর.ইগ.এইচটি-ডক / ক্লসটার- হাউটো.চ.টি.এম.এল ) এর মতো স্টিকি সেশন সহ সেশনটির প্রতিরূপ ব্যবহার করার জন্য কিছু কৌশল রয়েছে যা একটি স্টিকি সেশন এবং কেবল একটি প্রতিলিপি রাখবে (এখানে একটি নোড এখানে বলা হয় ব্যাকআপ ম্যানেজার যা সমস্ত নোড সেশনের প্রতিরূপ রাখে)।
নিকো

তারপরে স্টিকি সেশন আপনাকে কেবল একটি সেশন রেপ্লিকা রাখতে দেয় যা বড় ক্লাস্টারে সেরা।
নিকো

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

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