عن المشروع

Apache Dubbo-go هو تطبيق Go لـ Apache Dubbo، وهو إطار عمل عالي الأداء للـ RPC والخدمات المصغرة مصمم للتفاعل مع تطبيقات Dubbo بلغات أخرى. يستفيد من ميزات التزامن في Go لدعم حوكمة الخدمات مثل اكتشاف الخدمات وموازنة التحميل وإدارة حركة المرور. يشمل دعم البروتوكولات Dubbo وJSONRPC وTriple (المتوافق مع gRPC) وgRPC وHTTP وHTTP2 وHTTP/3 التجريبي، مما يساعد على التكامل في البيئات غير المتجانسة. تشمل تكاملات اكتشاف الخدمات المذكورة Nacos وZookeeper وEtcd وPolaris-mesh. تشمل استراتيجيات موازنة التحميل Adaptive وRandom وRoundRobin وLeastActive وConsistentHash. تغطي إدارة حركة المرور تقسيم الحركة والمهلة الزمنية وتحديد المعدل والإصدار التدريجي. يمكن أن يأتي التكوين من ملفات YAML أو مصادر ديناميكية مثل Nacos وApollo وZookeeper. تشمل خيارات المراقبة مقاييس Prometheus وتتبع OpenTelemetry والتسجيل مع أحداث دورة حياة تسجيل الخدمة. تشمل استراتيجيات التوافر العالي Failover وFailfast وFailsafe/Failback وAvailable وBroadcast وForking. يسلط README الضوء على قابلية التشغيل البيني مع Apache Dubbo (Java) عبر استدعاءات Triple العامة، ومطابقة wildcard للمجموعة/الإصدار، وإعادة تصميم واجهة TLS. تركز الإصدارات الأخيرة على توحيد الواجهات البرمجية وقدرات بروتوكول Triple والبيانات الوصفية على مستوى التطبيق وحوكمة الخدمات وسلامة التزامن وأدوات الإصدار. يزيل الإصدار 3.3.2 حزمة التكوين القديمة لصالح الحزمة العامة، ويذكر إصلاحات لحالات التسابق واللقطات القديمة وتسريبات الموارد. أضاف الإصدار 3.3.1 إعادة التحميل الساخن للتكوين مع التخزين المؤقت القائم على المحتوى، وHTTP/3 التجريبي، وتكامل Apollo، وتوليد Triple OpenAPI. قدم الإصدار 3.3.0 توجيه النصوص البرمجية، والتوجيه الشرطي متعدد الوجهات، وTriple keepalive وتجميع الاتصالات، واشتراكات Nacos متعددة الفئات. يتطلب البدء Go 1.24 أو أحدث. يتم التثبيت عبر `go get dubbo.apache.org/dubbo-go/v3@latest`. يوضح مثال سريع تعريف خدمة باستخدام Protobuf، وتنفيذها، وتسجيلها في خادم ببروتوكول Triple على منفذ، ثم تقديمها. يمكن بعد ذلك استدعاء الخدمة باستخدام cURL مع JSON عبر HTTP، أو عبر عميل dubbo-go قياسي. تتوفر نماذج في مستودع dubbo-go-samples. توجد أدوات التطوير في دليل `tools/`: dubbogo-cli للهيكلة وتثبيت الأدوات المرافقة وفحص البيانات الوصفية والتصحيح؛ وprotoc-gen-go-triple لتوليد ارتباطات Triple من تعريفات protobuf؛ وprotoc-gen-triple-openapi لتوليد مستندات OpenAPI v3؛ وimports-formatter لتجميع استيرادات Go؛ وdubbo-go-schema للتحقق من تكوين YAML؛ ومجموعة اختبارات أداء تقارن Dubbo-Go وDubbo-Java وgRPC. تشمل المنظومة dubbo-go-samples، وdubbo-go-pixiu كوسيط للتشغيل البيني متعدد اللغات، ودروس التشغيل البيني مع Dubbo Java، ووحدة تحكم Dubbo Admin. تتوفر الوثائق على موقع Dubbo الرسمي وقسم Go SDK. المشروع مرخص بموجب Apache License 2.0 ويرحب بالمساهمات عبر قضايا GitHub والقوائم البريدية.