אפשר להוריד את שרת ה-gRPC שלנו כדי להתחיל בהטמעה של השרת המלא של gRPC.
תחילת העבודה
יוצרים פרויקט Java gradle (gpc-booking-service), בעמודה src/main, ליצור 'פרוטו'
מורידים את שירות ההזמנות הגדרה ובדיקות תקינות Protocol, להציב אותם בקטע src/main/proto. הקבצים האלה מגדירים את השיטות של gRPC הודעות ל-Actions Center API ול-Health Check.
מעדכנים את הקובץ 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
מריצים את הפקודה הבאה כדי ליצור את הספרייה וליצור קוד באופן אוטומטי מ: פלאגין build של protoc:
./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