অ্যাপাচি থ্রিফ্ট, গুগল প্রোটোকল বাফারস, মেসেজপ্যাক, এএসএন .১ এবং অ্যাপাচি অভ্রের মধ্যে মূল পার্থক্যগুলি কী?


124

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

আপনি যদি অন্য কোনও অনুরূপ প্রযুক্তি জানেন তবে দয়া করে একটি উত্তরে এটি উল্লেখ করুন।



@ জেনিকোডার: এই লিঙ্কটিতে কোয়েরি করা 5 টির মধ্যে 2 টির জন্য কোনও তথ্য নেই।
আমার সঠিক মতামত

যে সাহায্য করতে পারে: slideshare.net/IgorAnishchenko/pb-vs-thrift-vs-avro ?
থোরোক

2
যারা আরপিসি জানেন না তাদের জন্য - রিমোট প্রোডিকিউর কল, আইডিএল - ইন্টারফেস সংজ্ঞা ভাষা
গার্গ 10 ম এ

উত্তর:


97

ASN.1 একটি আইএসও / আইএসই মান। এটির একটি খুব পঠনযোগ্য উত্স ভাষা এবং বাইনারি এবং মানব-পঠনযোগ্য উভয় প্রকারের পিছনের প্রান্ত রয়েছে। আন্তর্জাতিক মানের (এবং এটিতে একটি পুরাতন!) হ'ল উত্স ভাষাটি কিছুটা রান্নাঘর-সিনকিশ (প্রায় একইভাবে আটলান্টিক মহাসাগরটি কিছুটা ভেজা) তবে এটি অত্যন্ত সুস্পষ্টভাবে নির্দিষ্ট এবং এতে সমর্থনযোগ্য পরিমাণে সমর্থনযোগ্য । (আপনি যথেষ্ট পরিমাণে খনন করলে আপনার নামের জন্য যে কোনও ভাষার পক্ষে আপনি সম্ভবত একটি এএসএন .১ গ্রন্থাগার খুঁজে পেতে পারেন, এবং যদি এফএফআই তে ব্যবহার করতে পারেন এমন ভাল সি ভাষার লাইব্রেরি পাওয়া যায় না।) এটি একটি মানসম্পন্ন ভাষা হ'ল আবেশিকভাবে নথিভুক্ত এবং কয়েকটি ভাল টিউটোরিয়াল পাশাপাশি উপলব্ধ।

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

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

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

ব্যক্তিগতভাবে, এর সাথে আমার ভালবাসা / ঘৃণার সম্পর্ক সত্ত্বেও, আমি সম্ভবত বেশিরভাগ আরপিসি এবং বার্তা সংক্রমণ উদ্দেশ্যে ASN.1 ব্যবহার করতাম, যদিও এতে সত্যিকার অর্থে কোনও আরপিসি স্ট্যাক নেই (আপনাকে একটি তৈরি করতে হবে, তবে আইওসিগুলি এটি তৈরি করে) যথেষ্ট সহজ)।


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

2
এএসএন .১ ...এক্সটেনশন মার্কারগুলির মাধ্যমে বা EXTENSIBILITY IMPLIEDমডিউল শিরোনামের মাধ্যমে স্বয়ংক্রিয়ভাবে ম্যানুয়াল সংস্করণ সমর্থন করে । প্রোটোকল বাফারস, আইআইআরসি ম্যানুয়াল সংস্করণ সমর্থন করে। আমি জানি না যে এটি অন্তর্নিহিত এক্সটেনসিবিলিটির মতো কোনও কিছু সমর্থন করে (এবং এটি সন্ধান করতে খুব অলস) am থ্রিফ্ট কিছু সংস্করণকে সমর্থনও করে তবে এটি আবার বিহীন এক্সটেনসিবিলিটি ছাড়াই ম্যানুয়াল প্রক্রিয়া হিসাবে আমাকে আঘাত করে।
আমার সঠিক মতামত

7
রেকর্ডের জন্য, প্রোটোকল বাফারগুলি সর্বদা স্পষ্টভাবে সংখ্যা দ্বারা ক্ষেত্রগুলিকে এনকোড করে এবং অতিরিক্ত ক্ষেত্র থাকলে লাইব্রেরি স্তরে এটি কখনও ত্রুটি হয় না, এবং অনুপস্থিত ক্ষেত্রগুলি markedচ্ছিক বা স্পষ্টভাবে চিহ্নিত করা থাকলে ত্রুটি হয় না। সুতরাং সমস্ত প্রোটোকল বাফার বার্তা আছে EXTENSIBILITY IMPLIED
কেভিন ক্যাথকার্ট

আইওসি দ্বারা - আপনি কি নিয়ন্ত্রণের বিপরীতমুখীতা বলতে চান? এক্সপিএল-আরপিসি এক্সটেনশনের মতো পিএইচপি-তে আরপিসি স্ট্যাকের জন্য কেউ কী ব্যবহার করবে? বা নিজের কিছু লিখতে হবে?
স্ট্যান

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

38

সিরিয়ালাইজারদের উপর আমরা কেবলমাত্র একটি অভ্যন্তরীণ গবেষণা করেছি, এখানে কিছু ফলাফল রয়েছে (আমার ভবিষ্যতের রেফারেন্সের জন্যও!)

ব্যাস্ততা = সিরিয়ালাইজেশন + আরপিসি স্ট্যাক

সবচেয়ে বড় পার্থক্য হ'ল থ্রিফ্টটি কেবল একটি সিরিয়ালাইজেশন প্রোটোকল নয়, এটি একটি সম্পূর্ণ প্রস্ফুটিত আরপিসি স্ট্যাক যা আধুনিক দিনের এসওএপি স্ট্যাকের মতো। সুতরাং ধারাবাহিকতাতে পর, বস্তু পারে (কিন্তু বাধ্যতামূলক) মেশিনের মধ্যে TCP / IP এর মাধ্যমে পাঠানো হবে। এসওএপি-তে আপনি একটি ডাব্লুএসডিএল ডকুমেন্ট দিয়ে শুরু করেছিলেন যা উপলভ্য পরিষেবাদি (দূরবর্তী পদ্ধতি) এবং প্রত্যাশিত আর্গুমেন্ট / অবজেক্টগুলিকে পুরোপুরি বর্ণনা করে। এই বিষয়গুলি এক্সএমএলের মাধ্যমে প্রেরণ করা হয়েছিল। থ্রিফ্টে .thrift ফাইলটি উপলভ্য পদ্ধতিগুলি, প্রত্যাশিত প্যারামিটার অবজেক্টগুলি এবং অবজেক্টগুলিকে উপলভ্য সিরিয়ালাইজারগুলির মধ্যে একটির সাথে ক্রমিক করা হয় (সাথে Compact Protocolএকটি দক্ষ বাইনারি প্রোটোকল, যা উত্পাদন সর্বাধিক জনপ্রিয়)।

ASN.1 = গ্র্যান্ড বাবা

এএসএন .১০ কে দশকের দশকে টেলিকম লোকেরা ডিজাইন করেছিল এবং সাম্প্রতিক সিরিয়ালাইজের তুলনায় সীমিত গ্রন্থাগার সহায়তার কারণে ব্যবহার করা বিশ্রী which দুটি ভেরিয়েন্ট রয়েছে, ডিইআর (বাইনারি) এনকোডিং এবং পিইএম (এসসিআই) এনকোডিং। দু'টিই দ্রুত, তবে দু'জনের DER দ্রুত এবং আরও বেশি আকারের দক্ষ। আসলে এএসএন 1 ডায়ার সহজেই 30 বছর ধরে ডিজাইন করা সিরিয়ালাইজারগুলি (এবং কখনও কখনও বীট করে) রাখতে পারেনিজেই পরে, এটির জন্য ইঞ্জিনিয়ার ডিজাইন well এটি খুব কমপ্যাক্ট, প্রোটোকল বাফারস এবং থ্রিফ্টের চেয়ে ছোট, কেবল অভ্রের দ্বারা পরাজিত। ইস্যুটির সমর্থনের জন্য দুর্দান্ত গ্রন্থাগার রয়েছে এবং এই মুহূর্তে বাউন্সি ক্যাসল সি # / জাভার পক্ষে সেরা বলে মনে হচ্ছে। ASN.1 সুরক্ষা এবং ক্রিপ্টো সিস্টেমে রাজা এবং চলে যাচ্ছে না, সুতরাং 'ভবিষ্যতের প্রমাণীকরণ' সম্পর্কে উদ্বিগ্ন হবেন না। কেবল একটি ভাল গ্রন্থাগার পান ...

বার্তাপ্যাক = প্যাকের মাঝখানে

এটি খারাপ নয় তবে এটি দ্রুততমও নয়, সবচেয়ে ছোটও নয় বা সেরা সমর্থিতও নয়। এটি চয়ন করার কোনও উত্পাদন কারণ নেই।

সাধারণ

এর বাইরেও তারা মোটামুটি মিল। বেশিরভাগটি মূল নীতিটির বৈকল্পিক TLV: Type-Length-Value

প্রোটোকল বাফারস (গুগল উদ্ভূত), অভ্র (অ্যাপাচি ভিত্তিক, হ্যাডোপে ব্যবহৃত হয়েছে), থ্রিফ্ট (ফেসবুক উত্পন্ন, এখন অ্যাপাচি প্রকল্প) এবং এএসএন 1 (টেলিকম উদ্ভূত) সবকটি কোড জেনারেশনের কিছু স্তরের সাথে জড়িত যেখানে আপনি প্রথমে একটি সিরিয়ালে আপনার ডেটা প্রকাশ করেন বিশিষ্ট বিন্যাস, তারপরে সিরিয়ালাইজার "সংকলক" এই code-genপর্বের মাধ্যমে আপনার ভাষার জন্য উত্স কোড উত্পন্ন করবে । আপনার অ্যাপ্লিকেশন উত্স এর পরে এই code-genক্লাসগুলি আইওয়ের জন্য ব্যবহার করে । নোট করুন যে কয়েকটি বাস্তবায়ন (যেমন: মাইক্রোসফ্টের অভ্র লাইব্রেরি বা মার্ক গ্যাভেলের প্রোটো বুফ.এনইটিটি) আপনাকে সরাসরি আপনার অ্যাপ স্তরের পোকো / পোজো অবজেক্টগুলিকে সাজাতে দেয় এবং তারপরে গ্রন্থাগারটি কোনও কোড-জেনের ক্লাসের পরিবর্তে সরাসরি সেগুলি সজ্জিত ক্লাসগুলি ব্যবহার করে। আমরা এই অফারটিকে একটি উন্নত পারফরম্যান্স দেখেছি যেহেতু এটি কোনও অবজেক্ট কপির স্টেজ (অ্যাপ্লিকেশন স্তরের POCO / POJO ক্ষেত্রগুলি থেকে কোড-জেন ক্ষেত্রগুলিতে) সরিয়ে দেয়।

কিছু ফলাফল এবং খেলতে একটি লাইভ প্রকল্প

এই প্রকল্পটি ( https://github.com/sidshetye/SerializerCompare ) সি # বিশ্বে গুরুত্বপূর্ণ সিরিয়ালাইজারগুলির সাথে তুলনা করে। ইতিমধ্যে জাভা লোকদের মধ্যে একই জাতীয় কিছু রয়েছে

1000 iterations per serializer, average times listed
Sorting result by size
Name                Bytes  Time (ms)
------------------------------------
Avro (cheating)       133     0.0142
Avro                  133     0.0568
Avro MSFT             141     0.0051
Thrift (cheating)     148     0.0069
Thrift                148     0.1470
ProtoBuf              155     0.0077
MessagePack           230     0.0296
ServiceStackJSV       258     0.0159
Json.NET BSON         286     0.0381
ServiceStackJson      290     0.0164
Json.NET              290     0.0333
XmlSerializer         571     0.1025
Binary Formatter      748     0.0344

Options: (T)est, (R)esults, s(O)rt order, (S)erializer output, (D)eserializer output (in JSON form), (E)xit

Serialized via ASN.1 DER encoding to 148 bytes in 0.0674ms (hacked experiment!)

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

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

There are two variants, DER (binary) encoding and PEM (ascii) encoding। মনে রাখবেন যে পিইএম হ'ল বিগইন এন্ড মন্তব্যগুলির মধ্যে কেবল একটি বেস-64৪ এনকোডেড বাইনারি ডেটা। এই বাইনারি ডেটাটি ডিইআর এনকোডিং ব্যবহার করে তৈরি করা হতে পারে, তাই পিইএম এবং ডিইআর তুলনা করা খুব অদ্ভুত।
রাফালস

14

কর্মক্ষেত্রের দৃষ্টিকোণে যুক্ত করে, উবার সম্প্রতি তাদের ইঞ্জিনিয়ারিং ব্লগে এই কয়েকটি লাইব্রেরি মূল্যায়ন করেছেন:

https://eng.uber.com/trip-data-squeeze/

তাদের জন্য বিজয়ী? সংকোচনের জন্য বার্তাপ্যাক + zlib

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

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

আকার ফলাফল

আকার ফলাফল

গতির ফলাফল

এখানে চিত্র বর্ণনা লিখুন


13

এএসএন .১ এর একটি বড় বিষয় হ'ল, এটি বাস্তবায়নের জন্য নয়, নির্দিষ্টকরণের জন্য নকশাকৃত । সুতরাং যে কোনও "বাস্তব" প্রোগ্রামিং ভাষায় প্রয়োগের বিশদটি গোপন / উপেক্ষা করা খুব ভাল।

Asn1-file এ এনকোডিং বিধি প্রয়োগ করা এবং তাদের উভয় থেকে এক্সিকিউটেবল কোড জেনারেট করা ASN.1-Compiler এর কাজ। এনকোডিং বিধিগুলি এনকোডিং নোটেশন (ইসিএন) এ দেওয়া হতে পারে বা বিইআর / ডিইআর, পিইআর, এক্সআর / এক্সেরের মতো মানকযুক্ত একটি হতে পারে। এটি হ'ল এএসএন ১ হ'ল প্রকার ও কাঠামো, এনকোডিং বিধিগুলি ওয়্যার এনকোডিং-এ সংজ্ঞায়িত করে এবং সর্বশেষে তবে কমপাইলার এটি আপনার প্রোগ্রামিং ভাষায় স্থানান্তর করে না।

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

এই কৌশলগুলি ব্যবহার করে সম্পূর্ণ ভিন্ন প্রোগ্রামিং সংস্কৃতিগুলির (যেমন "এম্বেড করা" লোক এবং "সার্ভার কৃষক") দলের মধ্যে একটি ইন্টারফেস নির্দিষ্ট করা আশ্চর্যজনকভাবে সহজ: একটি asn.1-file, এনকোডিং বিধি যেমন BER এবং একটি ইউএমএল ইন্টারেক্টেশন ডায়াগ্রাম । কোনও উদ্বেগ নেই যে এটি কীভাবে কার্যকর করা হয়, সবাইকে "তাদের জিনিস" ব্যবহার করা যাক! আমার জন্য এটি খুব ভাল কাজ করেছে। বিটিডব্লিউ: ওএসএস নোকালভার সাইটে আপনি ASN.1 সম্পর্কে কমপক্ষে দুটি ফ্রি-টু ডাউনলোড বই পেতে পারেন (একটি লারমাউথ অন্যটি ডুবুইসন দ্বারা)।

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


7

মাইক্রোসফ্টের বন্ড ( https://github.com/Mic Microsoft/bond ) কর্মক্ষমতা, কার্যকারিতা এবং ডকুমেন্টেশন সহ খুব চিত্তাকর্ষক। তবে এটি এখন পর্যন্ত অনেক লক্ষ্য প্ল্যাটফর্ম সমর্থন করে না (13 ফেব্রুয়ারী 2015)। আমি কেবল এটি ধরে নিতে পারি কারণ এটি খুব নতুন। বর্তমানে এটি অজগর, সি # এবং সি ++ সমর্থন করে। এটি এমএস সর্বত্র ব্যবহার করছে। আমি এটি চেষ্টা করেছিলাম, এসি # বিকাশকারী যেমন বন্ড ব্যবহার করে প্রোটোবুফ ব্যবহার করার চেয়ে ভাল, তবে আমি বিকাশও ব্যবহার করেছি, ডকুমেন্টেশনটির সাথে আমার একমাত্র সমস্যা ছিল, বিষয়গুলি কীভাবে হয় তা বোঝার জন্য আমাকে অনেক কিছুই চেষ্টা করতে হয়েছিল।

বন্ড কয়েক সম্পদ নিম্নরূপ ( https://news.ycombinator.com/item?id=8866694 , https://news.ycombinator.com/item?id=8866848 , https://microsoft.github.io/ বন্ড / কেন_বোনড এইচটিএমএল )


5

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

একটি বড় পার্থক্য হ'ল স্কিমা অবশ্যই ব্যবহার করা উচিত (পিবি, কমপক্ষে; অভ্র এটি optionচ্ছিক হতে পারে; এএসএন 1 আমিও মনে করি; এমএসজিপ্যাক, অগত্যা নয়)।

এছাড়াও: আমার মতে স্তরযুক্ত, মডুলার ডিজাইন ব্যবহার করতে সক্ষম হওয়া ভাল; অর্থাৎ, আরপিসি স্তরটি ডেটা ফর্ম্যাট, সিরিয়ালাইজেশন নির্দেশ না করে। দুর্ভাগ্যক্রমে বেশিরভাগ প্রার্থীরা এগুলি দৃ tight়ভাবে বান্ডিল করেন।

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


অভিজ্ঞতা ভাগ করে নেওয়ার জন্য আপনাকে ধন্যবাদ, তবে আমি মনে করি আমার এখনও বাইনারি ফর্ম্যাট দরকার (আমার কাছে সত্যিকারের বিশাল পরিমাণের ডেটা রয়েছে) এবং সম্ভবত অভ্রের সাথে লেগে থাকবে।
andreypopp

হ্যাঁ বুঝতে পারে তখন। বিন্যাস নির্বিশেষে আপনি যে কোনও হারে সংক্ষেপণ ব্যবহার করতে চাইতে পারেন (এলজেডএফটি খুব সুন্দর যেহেতু এটি জিপিপ / ডিফল্টের তুলনায় সংকোচন / সঙ্কোচন করা খুব দ্রুত)।
স্টেক্সম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.