Skeleton gRPC sunucumuzu indirebilirsiniz. eksiksiz gRPC sunucunuzu uygulamaya başlamanıza yardımcı olun.
Başlayın
src/main altında bir Java gradle projesi (grpc-booking-service) oluşturun. 'proto' oluşturmak dizin.
Rezervasyon hizmetini indirin tanım ve sağlık denetimi protokolü, bunları src/main/proto altına yerleştirin. Bu dosyalar gRPC yöntemlerini ve Actions Center API ve Durum Denetimi için mesajları.
build.gradle dosyasını güncelleyin, bağımlılıkları ve protobuf eklentisini ekleyin. bir soru işareti olacaktı. Protobuf-gradle eklentisine giriş ve kılavuzda, 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 otomatik olarak kod oluşturmak için aşağıdaki komutu çalıştırın protoc derleme eklentisi:
./gradlew build
Sunucuda TLS'yi etkinleştirmek için src/main/certificates/ altında, şu dosyalar gereklidir:
- PEM biçiminde sunucu sertifikası zinciriniz: server_cert_chain.pem
- server_private_key.pem sunucu sertifikası için özel anahtarınız zincirinin, PKCS#8 özel anahtarı olması gerekir
- trusted_client_roots.pem güvenilir kök sertifikaları müşterilerin kimliklerini doğrularken, yalnızca tek bir tıklamayla bir otoriteden gelen güvenilir kökleri Mozilla veya Google Cloud Platform'u şu anda Google İnternet Yetkilisi tarafından önerilen köklerin oranı G2'yi seçin. İkinci durumda da, zaman zaman kök sertifikayı manuel olarak güncellemeyi
Şu kod deposundan örnek kodu 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 içinde, Health.java'yı altına yerleştirin. src/main/java/grpc/health/v1. Her iki dosyada da YAPILACAKLAR'ı takip ederek tamamlamanız gerekir.
Yürütülebilir sunucu oluşturma işlemini belirtmek için gradle.build dosyasını güncelleyin aşağıdaki kodu ekleyerek:
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
Son 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 Referanslar
Diğer yapı araçları için gRPC-java ve aşağıdaki dosyayı indirin: grpc-java/examples'ı kontrol edin.
git clone -b v1.9.0 https://github.com/grpc/grpc-java
gRPC Java Aktarım Güvenliği (TLS) kullanabilirsiniz.
gRPC API'si Sürüm 2'yi etkinleştirin.