rabbitmq و dataflows
مكتبة RABBITMQ من أدوات .NET للمساعدة في تطوير خدمات أداء جيدا أو للمساعدة في إدارة الاتصال الدائم مع RabbitMQ.Client !
حالة
محدث: 05/03/2024
خادم الاختبار: Windows 11 Pro (v10.0.22631 [Build 22631])
RabbitMQ Server: v3.13.2
إرلانج: v26.2.5
لماذا تصنع تدفق البيانات الذي يعمل بالطاقة؟
تحتوي Dataflows على التزامن قابل للتكوين ، والتسلسل ، والمراقبة ، والضغط ، والتشفير ، كلهم كمواطنين من الدرجة الأولى. يتيح هذا النموذج للمطورين التركيز فقط على الأشياء المهمة - إنجاز العمل!
فيما يلي بعض الميزات جاهزة مع RabbitMQ.Dataflows .
مهام سير العمل
- خطوط الأنابيب (V1) هي وظيفة وظيفة خفيفة الوزن في العمل.
- جميع الخطوات معالجة بالترتيب المقدم مما يتيح لك الاستمرار التحكم في ترتيب التنفيذ.
- التوازي القابل للتكوين والتزامن مدمج.
- لا توجد قياس أوبنت تلقائي.
- لا يوجد استثناء تلقائي للقبض على الأخطاء/عدم التزامن (استثناءات استثناءات قتل أنابيب).
- تدفقات البيانات (V2) هي فئة سير العمل الأكثر تعقيدًا ، لكنها كاملة.
- جميع الخطوات معالجة بالترتيب المقدم مما يتيح لك الاستمرار التحكم في ترتيب التنفيذ.
- التوازي القابل للتكوين والتزامن مدمج.
- معالجة ASYNC ، معالجة الدُفعات ، استنساخ المستهلك والمزيد!
- معالجة الأخطاء ASYNC (تبسيط معالجة الأخطاء الوظيفية عن طريق السماح للوظائف بالرمي).
- AutoPublish (إلى قائمة الانتظار التالية) وظائف مدمجة.
- قياس الأوبنتيل مع تتبع موزع أصلي للنشر/المستهلك.
مدمجة
- A Rabbitmq
IConnectionPool و IChannelPool (متانة اتصال). - يدعم
ILogger<T> عبر LogHelpers Static Singleton. - يعادل
IWorkState تبسيط العائدات العامة والتكامل الوظيفية. - لديه دعم
ISerializationProvider لـ System.Text.Json و MessagePack .- من السهل كتابة مقدمي الخدمات الخاصة بك.
- لديه دعم مضمن
ICompressionProvider المدمج لـ GZIP و Deflate و Brotli و LZ4. - لديه دعم
IEncryptionProvider المدمج لـ AESGCM و Bouncycastle AESGCM. - recyclableMemoryStream خيارات لـ
ICompressionProvider و IEncryptionProvider . - الناشرين تلقائيين نشر تشفير/فك التشفير السلس (يضيف الرؤوس أيضا).
- يسمح المستهلكون بخطوات الضغط/إلغاء الضغط السلس (يستخدم الرؤوس).
- الناشر/المستهلكون لديهم دعم
OpenTelemetry .
الاختبار
- ستحصل جميع الخطوات المدمجة على اختبارات تكامل يجب أن تزيل المخاوف من مطور المستخدم النهائي.
- ستشمل الحالة المستقبلية أكثر تعقيدًا غير معقدة كما يسمح الوقت.
- يجب أن يحتاج المطور فقط إلى اختبار وحدة العمل الوظيفية.
الأدلة والرمز والأمثلة
- البدء مع rabbitmq.dataflows connectionPool.
- البدء مع rabbitmq.dataflows Channelpool.
- البدء مع rabbitmq.dataflows Channelpool و BasicPublish.
- البدء مع rabbitmq.dataflows Channelpool و Basicget.
- البدء مع rabbitmq.dataflows Channelpool و BasicConsume.
- البدء مع RabbitMQ.Dataflows التسلسل.
- البدء مع ناشر rabbitmq.dataflows .
- البدء مع rabbitmq.dataflows Autopublisher.
- البدء مع RabbitMQ.Dataflows المستهلك.
- البدء مع rabbitmq.dataflows المستهلك .
المزيد في المستقبل ويمكن العثور على الوسائل البصرية في القاع!
يمكنك أيضًا العثور على أمثلة مختلفة للمكتبة داخل tests/UnitTests أو tests/RabbitMQ.Console.Test .
مكتبة RABBITMQ الرئيسية
Houseofcat.RabbitMq
مكتبة تركز على اتصال RabbitMQ وإدارة القناة لإنشاء ناشرين ومستهلكين متسامحين مع الأخطاء.
كان يسمى سابقا cookedRabbit.core/tesseract.
مكتبة DataFlow
Houseofcat.dataflows
مكتبة توفر التدفقات السحرية الأساسية لـ RabbitMQ.Dataflows.
- كتلة TPL المخصصة - تستخدم قناة
BufferBlock<TIn> - لديه DataFlowEngine و ChannelBlockEngine.
- لديه خطوط الأنابيب (بديل لبيانات البيانات).
مكتبات الإنتاجية الأساسية
هذه المكتبات موجودة هنا لمساعدتك في بناء تدفقات بيانات قوية لرسائلك.
Houseofcat.Serialization
مكتبة تحتوي على مجموعة من .net ISerializationProvider أو الواجهة لصنع خاص بك.
- يدعم MessagePack و System.text.json و Newtonsoft.json.
houseofcat.compression
مكتبة تحتوي على مجموعة من .NET ICompressionProvider أو الواجهة لصنع خاص بك.
- يدعم LZ4 و GZIP و Brotli و Deflate.
- يدعم المتغيرات RecyClableMemoryStream.
Houseofcat.hashing
مكتبة تركز على تنفيذ التجزئة.
Houseofcat.encryption
مكتبة توفر عقود تشفير وقاعدة AesGCM / AesCBC .NET IEncryptionProvider وكذلك الواجهة لصنعها.
- يدعم AESCBC عبر cryptoStream (جيد للملف/الذاكرة المشفرة).
- يدعم .NET AESGCM 128 ، 192 ، 256 (غير المتجول).
- يدعم Bouncycastle AESGCM 128/192/256.
- يدعم المتغيرات RecyClableMemoryStream.
Houseofcat.Utability
مكتبة تركز على وظائف وملحقات قابلة للاستخدام للأغراض العامة التي تبسط تجربة الترميز.
تكامل المكتبة غير الحرجة
Houseofcat.data
توفر المكتبة التي توفر فئات المساعدة لمعالجة البيانات وتحولها.
يوفر أيضًا تجريدات قاعدة البيانات ، وتكامل Dapper بسيط ، وتوليد SQL SQL Integration SQL.
دعم مصنع اتصال قاعدة البيانات
- System.Data.SqlClient
- Microsoft.data.sqlclient
- mysql.data.mysqlclient
- NPGSQ
- mysql.data
- أوراكل
- sqlite
الوسائل البصرية
لقد قمت بتضمين ملف Excalidraw عالي المستوى مع لقطات شاشة أدناه. تأكد من فتح الملف على الرغم من جودة أفضل وأكثر معلومات محدثة حيث سأستمر في تعزيزه بمرور الوقت. الهدف ليس الحصول على كل شيء هنا ، لكني أفهم تدفق المكتبة مع إضافة مساعدة مرئية. لا يوجد شيء مميز حقًا حول هذه المكتبة ، إنه مجرد أساسيات ، ولكن هناك الكثير من الأجزاء المتحركة عند التراجع.
الأرانب - ابدأ دورة الحياة

المستهلك - بدء دورة الحياة

ConsumerDataFlow - تدفق البيانات

Houseofcat.io