يمكنك تنزيل خادم gRPC الأساسي. للمساعدة في البدء في تنفيذ خادم gRPC الكامل.
البدء
أنشئ مشروع جافا gradle (grpc-booking-service)، ضمن src/main، إنشاء "نموذج أوّلي" الدليل.
تنزيل خدمة الحجز التعريف والفحص الصحي والبروتوكول، ضعها تحت src/main/proto. تحدد هذه الملفات طرق gRPC الخاصة بواجهة برمجة تطبيقات "مركز الإجراءات" وميزة "التحقّق من الصحة".
عدِّل ملف build.gradle، وأضِف التبعيات والمكوّن الإضافي Protobuf من أجل Gradle. يمكن أن تكون المقدمة والدليل الخاص بالمكوّن الإضافي Protobuf-gradle يمكنك الاطّلاع عليها هنا
apply plugin: 'java' apply plugin: 'com.google.protobuf' repositories { mavenCentral() } // updating the version in our release process. def grpcVersion = '1.8.0' // CURRENT_GRPC_VERSION def nettyTcNativeVersion = '2.0.7.Final' dependencies { compile "com.google.api.grpc:proto-google-common-protos:0.1.9" compile "io.grpc:grpc-netty:${grpcVersion}" compile "io.grpc:grpc-protobuf:${grpcVersion}" compile "io.grpc:grpc-stub:${grpcVersion}" compile "io.netty:netty-tcnative-boringssl-static:${nettyTcNativeVersion}" compile "org.bouncycastle:bcmail-jdk15:1.46" testCompile "io.grpc:grpc-testing:${grpcVersion}" testCompile "junit:junit:4.12" testCompile "org.mockito:mockito-core:1.9.5" } buildscript { repositories { mavenCentral() } dependencies { // ASSUMES GRADLE 2.12 OR HIGHER. Use plugin version 0.7.5 with earlier // gradle versions classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.1' } } protobuf { protoc { artifact = 'com.google.protobuf:protoc:3.4.0' } plugins { grpc { artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" } } generateProtoTasks { all()*.plugins { grpc {} } } } // Inform IDEs like IntelliJ IDEA, Eclipse or NetBeans about the generated code. sourceSets { main { java { srcDirs 'build/generated/source/proto/main/grpc' srcDirs 'build/generated/source/proto/main/java' } } } // Generate IntelliJ IDEA's .idea & .iml project files apply plugin: 'idea' // Provide convenience executables for trying out the examples. apply plugin: 'application' startScripts.enabled = false
شغِّل الأمر التالي لإنشاء المكتبة وإنشاء الرمز تلقائيًا من المكون الإضافي لإنشاء البروتوك:
./gradlew build
لتفعيل بروتوكول أمان طبقة النقل (TLS) على الخادم، ضمن src/main/certificates/ الملفات التالية مطلوبة:
- server_cert_chain.pem سلسلة شهادات الخادم بتنسيق PEM
- server_private_key.pem مفتاحك الخاص لشهادة الخادم أن يكون المفتاح الخاص PKCS#8
- trusted_client_roots.pem شهادات الجذر الموثوق بها عند مصادقة العملاء، يمكنك اختيار الحصول على هذه المجموعة من جذور موثوقة من سلطة مثل Mozilla، أو قم بتثبيت مجموعة من الجذور التي تقترحها حاليًا هيئة الإنترنت من Google G2. في الحالة الثانية، قد يكون لديك لتعديل شهادة الجذر يدويًا في بعض الأحيان
يمكنك استرداد نموذج الرمز من هذا المستودع:
git clone https://maps-booking.googlesource.com/java-maps-booking-grpc-server-skeleton
ضع BookingService.java ضمن src/main/java/ext/maps/booking/partner/v2، ضَع Health.java ضِمن src/main/java/grpc/health/v1. في كلا الملفين، اتّبِع قائمة المهام من أجل وإكمال عمليات التنفيذ.
حدِّث ملف gradle.build لتحديد إنشاء الخادم القابل للتنفيذ عن طريق إضافة الرمز التالي:
task bookingService(type: CreateStartScripts) { mainClassName = 'ext.maps.booking.partner.v2.BookingService' applicationName = 'booking-service' outputDir = new File(project.buildDir, 'tmp') classpath = jar.outputs.files + project.configurations.runtime } applicationDistribution.into('bin') { from(bookingService) fileMode = 0755 }
تجميع الخادم:
./gradlew installDist
تشغيل خادم الحجز:
./build/install/grpc-booking-service/bin/booking-service
بنية الدليل النهائي
src
|---main
|---certificates
|---server_cert_chain.pem
|---server_private_key.pem
|---trusted_client_roots.pem
|---java
|---ext.maps.booking.partner.v2.BookingService.java
|---grpc.health.v1.Health.java
|---proto
|---booking_service.proto
|---health.proto
|---test
مرجع آخر
للتعرف على أدوات الإنشاء الأخرى، قم بزيارة gRPC-java وتنزيل على سبيل المثال، يمكنك التحقق من grpc-java/examples.
git clone -b v1.9.0 https://github.com/grpc/grpc-java
gRPC java Transport Security (بروتوكول أمان طبقة النقل (TLS)).