গ্লাসফিশ / জেবস / টমক্যাটের ফ্রন্ট-এন্ড হিসাবে অ্যাপাচি চালানো কি সত্যিই প্রয়োজনীয়?


14

আমি মূলত একটি জাভা বিকাশকারী এবং আমি আপনার কাছে এমন একটি প্রশ্ন নিয়ে আসছি যা বিকাশকারী এবং সিসাদমিনদের মধ্যে বিভাজনকে বিস্তৃত করে।

বছর আগে, যখন টমক্যাটকে অ্যাপ সার্ভার হিসাবে চালানো একটি অভিনব বিষয় ছিল, তখন এটি অ্যাপাচি দিয়ে সামনে রাখার রীতি ছিল। আমি এটি বুঝতে পেরেছি, কারণ এটি করা হয়েছিল:

  1. জাভাটিকে "ধীর" হিসাবে বিবেচনা করা হত, এবং অ্যাপাচি সরাসরি স্ট্যাটিক সামগ্রী সরবরাহ করা সহায়ক।
  2. টমক্যাট 80/443 পোর্ট শুনতে পারা যায় না যদি না রুট হিসাবে চালানো হয়, যা বিপজ্জনক ছিল।

জাভা আর ধীর বিবেচনা করা হয় না, এবং আমি সন্দেহ করি যে মিশ্রণটিতে অ্যাপাচি যুক্ত করা জিনিসগুলি দ্রুত গতিতে সহায়তা করবে actually

পোর্ট ইস্যু হিসাবে, আজকাল 80/443 বন্দরগুলিতে অ্যাপ সার্ভারগুলিকে সংযুক্ত করার সম্ভবত সহজ উপায় রয়েছে।

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

উত্তর:


8

স্থির ফাইলগুলির কারণে বেশিরভাগ লোকেরা আপনাকে সামনে কিছু দরকার বলে চলেছে।

এটি কিছুটা বোবা কারণ:

  • আপনি এপিআর এর সাথে অ্যাপাচি হিসাবে একই আইও ব্যবহার করতে টমকেটটি কনফিগার করতে পারেন
  • আপনার যাহাই হউক না কেন একটি সিডিএন (সামগ্রী বিতরণ নেটওয়ার্ক) ব্যবহার করা উচিত।

ভারসাম্যটি লোড করতে এবং ফেলওভার হ্যান্ডেল করার জন্য আপনাকে টমক্যাট / জেটি / জবিএসের সামনের কিছু দরকারের আসল কারণ।

আমি আপনাকে সুপারিশ না করার পরামর্শ দিচ্ছি " ... টমক্যাট ইঞ্জিনটি পুরো বাস্তুতন্ত্রের অ্যাকিলিস হিল ... " যেমনটি আমরা সবাই জানি যে সত্য নয় ... আপনার ডাটাবেস এবং এর সংযোগ পুলিংটি হবে be


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

@ ক্যাফিন কোমা আমি একই নৌকায় আছি এবং মনে হচ্ছে আমরা একই প্রযুক্তি ব্যবহার করছি তাই স্ট্যাকেক্সচেঞ্জজ জুড়ে একই থ্রেডে থাকার নিখরচায়তা (আমি কসম খেয়ে বলছি যে আমি লাঞ্ছনা করছি না :))। বিটিডাব্লু আমরা Nginx + টমক্যাট ব্যবহার করছি।
অ্যাডাম জেন্ট

5

এটি আপনার অ্যাপ্লিকেশনটির আশেপাশের বাস্তুতন্ত্রের উপর নির্ভর করে। একটি ইন্ট্রানেট পরিবেশে - টমকেটের সামনে আপনার সম্ভবত কোনও প্রয়োজন নেই।

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

আপনার সামনে ওয়েবচেপ আপগ্রেড করতে হবে এবং পুনরায় আরম্ভের জন্য অপেক্ষা করতে হবে এমন ক্ষেত্রে আউটেজ পাতাগুলি পরিবেশন করার জন্য সামনে আসে Ap তবে যদি পুনঃসূচনাগুলি বিরল হয় বা সেগুলি সঠিকভাবে সময়সাপেক্ষ হয় - তবে এটি টমক্যাট স্ট্যান্ডেলোন যাওয়ার অন্য কারণ।

টমকেট এফএকিউ এ সম্পর্কেও কথা বলে যা কিছু অতিরিক্ত পয়েন্টগুলিকে সম্বোধন করে: http://wiki.apache.org/tomcat/FAQ/ সংযোগকারীদের#Q3


1

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


আমি যাইহোক সত্যিই খুব বেশি স্থির সামগ্রী সরবরাহ করছি না। আমার প্রশ্নটি সত্যি: আমার কি অ্যাপাচি / এনগিনেক্স ফ্রন্ট-এন্ড নিয়ে বিরক্ত করা দরকার, বা কেবল স্ট্রেইট গ্লাসফিশের সাথে যেতে হবে? ধন্যবাদ।
ক্যাফিন কোমা

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

অ্যাপাচি অগত্যা মাল্টি-প্রসেস নয়। এমপিএম কর্মী কিছু সময়ের জন্য বাইরে ছিলেন httpd.apache.org/docs/2.2/mod/worker.html এবং আমরা একটি মাল্টি থ্রেডেড ওয়েব সার্ভারের জন্য উত্পাদন পরিবেশে ব্যবহার করছি।
ডায়াল্ট0

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

1

আশ্চর্যজনক, এর মধ্যে কয়েকটি উত্তর - আপনারা কি আসলেই উচ্চতর পারফরম্যান্স মাল্টি-টায়ার্ড এবং মুটলি-সার্ভার টমক্যাট ব্যাক ওয়েবসাইট চালাচ্ছেন? ও, আপনার মূল অনুমান টমক্যাট "ধীর" নয় ... বাহ! টমক্যাট ইঞ্জিনটি পুরো বাস্তুতন্ত্রের অ্যাকিলিস হিল।

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

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


4
আপনি খুব বিরক্ত শব্দ।
ক্যাফিন কোমা

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

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

0

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

jsvcটমক্যাটকে পরিষেবা হিসাবে চালু করার জন্য একটি জাভা পরিষেবা মোড়ক। এই পরিষেবাটি রুট হিসাবে শুরু হয় তবে সাধারণ ব্যবহারকারী হিসাবে টমক্যাট শুরু করে। সুতরাং আপনি আপনার টমকেটটি সুবিধামত বন্দরে বাঁধতে পারেন।

আমি গ্লাসফিশ সম্পর্কে জানি না, তবে নিশ্চিত হয়ে নিন যে সমাধানগুলি বিদ্যমান এবং যদি না হয় তবে আপনি অবশ্যই পোর্ট ফরওয়ার্ডিং কৌশলগুলি ব্যবহার করতে পারেন (আইপেটেবলস, ইত্যাদি ...)

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

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