आप हमारा स्केलेटन gRPC सर्वर डाउनलोड कर सकते हैं gRPC सर्वर का इस्तेमाल करके शुरुआत करें.
शुरू करें
src/main, 'प्रोटो' बनाएं डायरेक्ट्री.
बुकिंग सेवा परिभाषा और स्वास्थ्य की जांच प्रोटोकॉल, उन्हें src/main/proto के तहत रखें. ये फ़ाइलें gRPC तरीकों को तय करती हैं और Actions Center API और ऐप्लिकेशन की परफ़ॉर्मेंस की जांच के लिए मैसेज.
build.gradle फ़ाइल को अपडेट करें, फिर डिपेंडेंसी और प्रोटोबफ़ प्लगिन जोड़ें 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/ में जाकर, निम्न फ़ाइलें आवश्यक हैं:
- PEM फ़ॉर्मैट में server_cert_chain.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. दोनों फ़ाइलों में, इन कामों के लिए TODO का पालन करें लागू करने की प्रोसेस को पूरा करें.
एक्ज़ीक्यूटेबल सर्वर जनरेट करने की जानकारी देने के लिए, 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