Sie können unseren gRPC-Basisserver herunterladen. um Sie bei den ersten Schritten mit der Implementierung Ihres vollständigen gRPC-Servers zu unterstützen.
Jetzt starten
Erstellen Sie ein Java Gradle-Projekt (grpc-booking-service) unter der Spalte src/main, ein „Proto“ zu erstellen -Verzeichnis.
Buchungsservice herunterladen Definition und Systemdiagnosen Protokoll, unter "src/main/proto" platzieren. Diese Dateien definieren die gRPC-Methoden für die Actions Center API und die Systemdiagnose.
Datei build.gradle aktualisieren, Abhängigkeiten und protobuf-Plug-in hinzufügen für Gradle. Die Einführung und Anleitung für das protobuf-gradle-plugin finden Sie hier.
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
Führen Sie den folgenden Befehl aus, um die Bibliothek zu erstellen und automatisch Code aus protoc Build-Plugin:
./gradlew build
Um TLS auf dem Server zu aktivieren, verwenden Sie unter src/main/certificates/ das Feld folgende Dateien sind erforderlich:
- server_cert_chain.pem für Ihre Serverzertifikatskette im PEM-Format
- server_private_key.pem ist Ihr privater Schlüssel für das Serverzertifikat. muss der private PKCS#8-Schlüssel sein
- trusted_client_roots.pem: die vertrauenswürdigen Root-Zertifikate bei der Authentifizierung von Clients, können Sie vertrauenswürdigen Wurzeln einer Behörde wie Mozilla oder das set der derzeit von der Google Internet Authority empfohlenen Wurzeln G2 Im letzteren Fall haben Sie möglicherweise um das Root-Zertifikat zeitweise manuell zu aktualisieren,
Rufen Sie den Beispielcode aus diesem Repository ab:
git clone https://maps-booking.googlesource.com/java-maps-booking-grpc-server-skeleton
Platzieren Sie die Datei BookingService.java unter src/main/java/ext/maps/booking/partner/v2, platzieren Sie Health.java unter src/main/java/grpc/health/v1. Folgen Sie in beiden Dateien den TODOs, um Implementierung abgeschlossen werden.
Aktualisieren Sie die Datei „gradle.build“, um die Generierung der ausführbaren Datei des Servers anzugeben indem Sie folgenden Code hinzufügen:
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 }
Kompilieren Sie den Server:
./gradlew installDist
Führen Sie den Buchungsserver aus:
./build/install/grpc-booking-service/bin/booking-service
Endgültige Verzeichnisstruktur
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
Weitere Referenz
Weitere Bautools finden Sie in der gRPC-java und laden Sie die finden Sie in grpc-java/examples.
git clone -b v1.9.0 https://github.com/grpc/grpc-java