Tam gRPC sunucunuzu uygulamaya başlamanıza yardımcı olması için iskelet gRPC sunucumuzu indirebilirsiniz.
Başlayın
Bir java gradle projesi (grpc-booking-service) oluşturun, src/main altında "proto" dizini oluşturun.
Rezervasyon hizmeti tanımını ve sağlık kontrolü protokolünü indirip src/main/proto altına yerleştirin. Bu dosyalar, Actions Center API ve durum denetimi için gRPC yöntemlerini ve mesajlarını tanımlar.
build.gradle dosyasını güncelleyin, Gradle için bağımlılıkları ve protobuf eklentisini ekleyin. protobuf-gradle-plugin ile ilgili giriş ve kılavuzu burada bulabilirsiniz.
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
Kitaplığı derlemek ve protoc derleme eklentisi üzerinden kod otomatik olarak oluşturmak için aşağıdaki komutu çalıştırın:
./gradlew build
Sunucuda TLS'yi etkinleştirmek için src/main/certificates/ altında aşağıdaki dosyalar gereklidir:
- server_cert_chain.pem PEM biçimindeki sunucu sertifika zinciriniz
- server_private_key.pem sunucu sertifika zinciri için özel anahtarınızdır. PKCS#8 özel anahtarı olmalıdır.
- trusted_client_roots.pem istemcilerin kimliğini doğrularken güvenilen kök sertifikaları, bu güvenilir kök sertifika grubunu Mozilla gibi bir yetkiliden almayı veya Google İnternet Yetkilisi G2 tarafından şu anda önerilen kök sertifika grubunu yüklemeyi seçebilirsiniz. İkinci durumda, bazen kök sertifikayı manuel olarak güncellemeniz gerekebilir.
Örnek kodu bu depodan alın:
git clone https://maps-booking.googlesource.com/java-maps-booking-grpc-server-skeleton
BookingService.java dosyasını src/main/java/ext/maps/booking/partner/v2 altına, Health.java dosyasını src/main/java/grpc/health/v1 altına yerleştirin. Her iki dosyada da uygulamalarınızı tamamlamak için TODO'ları uygulayın.
Aşağıdaki kodu ekleyerek gradle.build dosyasını sunucu yürütülebilir dosyasının oluşturulmasını belirtecek şekilde güncelleyin:
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 }
Sunucuyu derleyin:
./gradlew installDist
Rezervasyon sunucusunu çalıştırın:
./build/install/grpc-booking-service/bin/booking-service
Nihai Dizin Yapısı
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
Diğer Referans
Diğer derleme araçları için gRPC-java'yı ziyaret edin ve örneği indirin. grpc-java/examples adresine bakın.
git clone -b v1.9.0 https://github.com/grpc/grpc-java