স্প্রিং ইন্টিগ্রেশন বনাম উট কখন ব্যবহার করবেন?


138

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

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

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


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

উত্তর:


75

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

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

আমরা সম্পাদনা-সংকলন-ডিবাগ চক্র হ্রাস পেয়েছি। রুটগুলি স্থাপনের জন্য গ্রোভি ব্যবহার করে যুক্ত করা হয় বোনাস।

স্প্রিং-ইন্টিগ্রেশন একটি দুর্দান্ত পণ্য, এবং আমি নিশ্চিত যে এটি আমাদের চাহিদাও পূরণ করবে quite


1
আপনার পয়েন্টগুলি ভাগ করে নেওয়ার জন্য পিটারকে ধন্যবাদ, আপনি কি কখনও উটের জেএমএস ক্ষমতাগুলি ব্যবহার করার চেষ্টা করেছিলেন, মনে হচ্ছে সংশ্লিষ্ট উপাদানগুলিও বেশ নমনীয় এবং স্প্রিং ইন্টিগ্রেশনের মতো সমৃদ্ধি রয়েছে? "ছোট স্কেল শ্যুটআউট" দ্বারা আপনি আরও ভাল পারফরম্যান্সের নম্বর উল্লেখ করেন?
ngeek

1
শ্যুটআউট: এটি মূলত বিকাশকারীদের অভিনয় ছিল। আমাদের পারফরম্যান্সের চাহিদা খুব বেশি নয়। হ্যাঁ আমরা ভিত্তিতে প্রচুর জেএমএস ব্যবহার করি। অ্যাক্টিভ কিউ এবং জেবসএমকিউ উভয়ই বার্তাপ্রেরণের জন্য ব্যবহৃত হয়।
পিটার টিলেম্যানস


67

আমি কেবলমাত্র বসন্ত সংহতকরণের প্রস্তাব দিই যদি আপনি ইতিমধ্যে একটি স্প্রিং প্রকল্প পেয়ে থাকেন এবং আপনার কেবল ফাইল, এফটিপি, জেএমএস, জেডিবিসি এবং আরও কিছু কিছু ব্যবহার করে কিছু "বেসিক" সংহত করতে হবে।

অ্যাপাচি উটের দুটি প্রধান সুবিধা রয়েছে:

  1. অনেকগুলি, আরও অনেকগুলি প্রযুক্তি সমর্থন করে।
  2. একটি (ভাল) এক্সএমএল ডিএসএল ছাড়াও জাভা, গ্রোভি এবং স্কালার জন্য সাবলীল এপিআই রয়েছে।

অ্যাপাচি ক্যামেলের স্প্রিংয়ের সাথে খুব ভাল সংহতকরণ রয়েছে, তাই আমি বেশিরভাগ স্প্রিং প্রকল্পে স্প্রিং ইন্টিগ্রেশনের পরিবর্তে এটি ব্যবহার করব।

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


31

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

  • এক্সএমএল-কনফিগারেশনের জন্য ডিএসএল ব্যবহার করা দীর্ঘ-বায়ুযুক্ত সমস্যার পরিচয়।
  • সমস্ত কাঠামোর উপাদানগুলি ওয়্যারড-আপ পেতে এক্সএমএল-কনফিগারেশন কোডের পৃষ্ঠাগুলি।
  • উত্সর্গীকৃত ফ্রেমওয়ার্ক সমতুল্য কার্যকারিতা সরবরাহ করার জন্য নিখোঁত সংস্থানসমূহ।

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

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

আমার উপসংহার: মোচড় আপনার ব্যবসায়ের সাথে লেগে থাকুন - স্প্রিংটিকে একটি ধারক হিসাবে এবং উটকে সিস্টেম ইন্টিগ্রেশন ফ্রেমওয়ার্ক হিসাবে ব্যবহার করুন।


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

15

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

একটি ছোট স্কেল শ্যুটআউট করা একটি খুব ভাল ধারণা, কেবলমাত্র আপনি প্রকল্পে সাধারণত যে কাজগুলি করতে চান তা করার চেষ্টা করছেন তা নিশ্চিত করুন।

- অস্বীকৃতি: আমি একটি স্প্রিং ইন্টিগ্রেশন প্রতিশ্রুতিবদ্ধ


9

উট এবং এসআইয়ের বেশিরভাগ তুলনা যা আমি দেখেছি সেগুলি নিম্নলিখিতগুলিকে বিবেচনা করে না:

১) স্প্রিং বুটটির প্রভাব স্প্রিং ইন্টিগ্রেশনের জন্য বিকাশকারী উত্পাদনশীলতার উপর পড়েছে

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

৩) স্প্রিং এক্সডির প্রভাবটি একটি স্ট্যাকে স্প্রিং ইন্টিগ্রেশন, স্প্রিং ব্যাচ, স্প্রিং ডেটা (+ হাদুপ!) একত্রিত করার উপর কার্যকরভাবে ব্যাচ এবং স্ট্রিম প্রসেসিং, এইচডিএফএস / অ্যাপাচি হ্যাডোপ সমর্থন এবং আরও অনেক কিছু স্প্রিং ইন্টিগ্রেশনে নিয়ে আসে।

৪) শিগগিরই প্রকাশিত স্প্রিং ইন্টিগ্রেশন 4.0.০ জাভা ডিএসএল https://github.com/spring-projects/spring-integration-extensions/wiki/Spring-Integration- জাভা- ডিএসএল- রেফারেন্স

তোমার বিবেচনার জন্য,

/ পাইটার (অস্বীকৃতি আমি পিভোটাল এ কাজ করি)


3
জাভা ডিএসএলকে বিবেচনায় নেওয়ার আগে প্রচুর কাজ এবং আরও বেশি ডকুমেন্টেশন প্রয়োজন।
কাটকার্ডস

এটি এখন কিছুক্ষণের জন্য প্রকাশিত হয়েছে ... বসন্ত
পিটার

6

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

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

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

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


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

4

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

http://forum.springsource.org/forumdisplay.php?42- ইন্টিগ্রেশন
https://jira.springsource.org/browse/INT

চিয়ার্স ওলেগ

দাবি অস্বীকার: আমি স্প্রিং ইন্টিগ্রেশন প্রতিশ্রুতিবদ্ধ


4

অ্যাপাচি উট একটি খুব ভাল কাঠামো এবং খুব সম্পূর্ণ। তবে যদি আপনার অ্যাপ্লিকেশনটি বসন্ত ব্যবহার করে তবে আমার ব্যক্তিগত পরামর্শটি হল স্প্রিং ইন্টিগ্রেশন ব্যবহার করা।

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

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


1

বসন্ত সংহতকরণের জন্য উট ব্যবহার করার একটি কারণ হ'ল যখন আপনার আরও বেশি বৈশিষ্ট্যযুক্ত EIP সেট দরকার হয় need স্প্রিং ইন্টিগ্রেশন থ্রেডপুলের মতো জিনিসগুলিতে বিমূর্ততা সরবরাহ করে না।

সমষ্টিগত কোডের সাথে কাজ করার কয়েকটি দিককে সরলকরণের জন্য উট অতিরিক্ত নির্মাণ সামগ্রী সরবরাহ করে:

http://camel.apache.org/camel-23-threadpool-configuration.html

আপনার যদি এই ধরণের জিনিসটির প্রয়োজন না হয় এবং কেবল ফাইল, জেএমএস, এফটিপি শেষ পয়েন্টগুলি ইত্যাদি সংযোগ করতে চান ... তবে কেবল স্প্রিং ইন্টিগ্রেশন ব্যবহার করুন।


2
স্প্রিং থেকে এসআই পোলার্স এবং টাস্ক এক্সিকিউটিরে থ্রেডপুলগুলিতে নিজের কোনও বিমূর্ততা রয়েছে। যদিও এসআই-তে আপনার OOTB- র জন্য প্রাক-কনফিগার করা কিছুই নেই। এখানে নির্ধারিত টাস্ক এক্সিকিউটারটি দেখুন: স্ট্যাটিক.স্প্রিংসোর্স.আর
স্প্রিং

@ জন, আপনি দয়া করে জেএমএসে আমার পোস্টটি একবার দেখে নিতে পারেন
শিক্ষার্থী

-1

উট অ্যাপ্লিকেশনের মিডলওয়্যার হিসাবে কাজ করে যেখানে কেউ ডেটা মডেলিং, বার্তার মানগুলির রূপান্তর এবং বার্তাগুলির কোরিওগ্রাফি করতে পারে।


-3

যদি আপনার বর্তমান অ্যাপ্লিকেশনটি বসন্তে থাকে এবং EIP- এর স্প্রিং ইন্টিগ্রেশন দ্বারা সমর্থিত এমন বৈশিষ্ট্যগুলির প্রয়োজন হয় তবে স্প্রিং ইন্টিগ্রেশন সর্বোত্তম বিকল্প হ'ল অন্য তৃতীয় পক্ষের সমর্থন / প্রোটোকল / ফাইল ফর্ম্যাট ইত্যাদি প্রয়োজন require


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