ما هو أفضل وسيلة لعمليات توزيعها على التواصل بشكل غير متزامن؟

StackOverflow https://stackoverflow.com/questions/632896

  •  08-07-2019
  •  | 
  •  

سؤال

وأنا تطوير تطبيق التي توزع مكونات التحدث مع بعضهم البعض عبر شبكة اتصال، وذلك في غير المتزامن، حانة / نوع فرعي من الطريق.

لذلك، أنا أحب فكرة ارسال XML على مآخذ - انها غير متزامن، أنا لست بحاجة إلى الخادم من أي نوع، وأنها يمكن أن تعمل محليا أو عبر شبكة اتصال. كنت أود أن يكون للفة بلدي آلية حانة / الفرعية، والتي ربما لن تكون مرهقة جدا - I يمكن استخدام عنوان IP كما معرف المشترك. واللغة التنفيذ يكون C ++. لقد استعملت هذه الطريقة من قبل مع نتائج جيدة. ولكن، وأتساءل عما إذا كان هناك طريقة أفضل؟ أي نصيحة ترحيب.

وتحرير: أنا لم اتخذ قرارا بعد، ولكن أنا مهتم في تعليق cparcode على protobuf:

و"أنا لم يفهم شعبية باستخدام XML لاألوامر شبكة بأي حال من الأحوال، وأنا أدرك أن البروتوكول ليست سوى جزء من المشكلة ولكن على هذا الموضوع، وهناك protobuf جوجل أيضا: <لأ href =" HTTP: // كود .google.com / ع / protobuf / "يختلط =" نوفولو noreferrer "> http://code.google.com/p/protobuf/ - caparcode (11 مارس في 01:01)"

هل كانت مفيدة؟

المحلول

وبدلا من استخدام XML قد يكون من الأفضل استخدام رسالة إطار تمرير القائمة. إلقاء نظرة على libt2n أو <وأ href = "HTTP: / /www.freedesktop.org/wiki/Software/dbus "يختلط =" نوفولو noreferrer "> د حافلة

ولكن كنت قد استخدمت تنفيذ مأخذ الخاصة بك في الماضي مع نتائج جيدة لا أرى سببا لماذا يجب أن تتغير. إذا لم يتم كسر لا تصلحه:)

نصائح أخرى

وبدلا من مآخذ مستقيمة فقط، قد نظر في حل مثل AMQP .

وعندما تتحدث عن استخدام اتصالات مأخذ التوصيل لواجهة الحانة / فرعية، وهذا يعني عادة من نقطة إلى نقطة اتصال، وهي ليست دائما الحل للتحجيم. AMQP يتناول حقا هذا النوع من الحانة / مشكلة فرعية. انها حرة، انها مفتوحة المصدر، ويعمل.

وبالنظر إلى أن أنها قد حلت بالفعل حانة / مشكلة الفرعية، قد ترغب في الاستفادة من عملهم بدلا من فعل ذلك بنفسك.

OpenAMQ.

وأن يقال، انها حقا يتوقف على نوع البيئة التي نعمل فيها. AMQP يتطلب وسيطا AMQP (تطبيق مسؤولة عن توجيه الرسائل) ليكون تشغيل في مكان ما في النظام.

ونلقي نظرة على ActiveMQ . انها الدائرة مزود وأيضا لديه ارتباطات في الكثير من لغات أخرى، ويعمل على عدة وسائل النقل، ولديه مجموعة من البروتوكولات التي تستخدمها لرسائلها.

وRabbitMQ هو أيضا وسيط AMQP، التي تدعم البروتوكولات الأخرى مثل XMPP، HTTP، ستومب، SMTP كذلك، وذلك باستخدام محولات.

وخاصة إذا كنت قد فعلت ذلك من قبل، وأنها لا تزال تلبي الاحتياجات الخاصة بك، والعصا معه.

وماذا عن تضمين خادم الويب في التطبيق الخاص بك؟ EasyHTTPD مفتوح المصدر، C ++، وبسيطة جدا لاستخدام. الجزء غير متزامن من السهل بما فيه الكفاية. اما دوران موضوع جديد على المرسل أو المتلقي.

إذا كنت تبحث عن XML، وعبر منصة للتمهيد، قد تفكر في آلية XML-RPC مثل SOAP (لقد استعملت gSoap للاتصال بين الخادم C على لينكس مع عميل C ++ على Win32، و عملت غرامة بمجرد معرفة ذلك كله).

إذا كنت لا يميل بشدة نحو XML وتريد شيء بسيط وفعال ثم النظر في النظر في YAMI مكتبة . انها بسيطة بدلا من استخدام وصلة معينة يحتوي على ما يكفي من الوثائق، والمنطق، وأمثلة للبدء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top