Java के लिए gRPC सर्वर स्केलेटन

आप हमारा स्केलेटन gRPC सर्वर डाउनलोड कर सकते हैं gRPC सर्वर का इस्तेमाल करके शुरुआत करें.

शुरू करें

  1. src/main, 'प्रोटो' बनाएं डायरेक्ट्री.

  2. बुकिंग सेवा परिभाषा और स्वास्थ्य की जांच प्रोटोकॉल, उन्हें src/main/proto के तहत रखें. ये फ़ाइलें gRPC तरीकों को तय करती हैं और Actions Center API और ऐप्लिकेशन की परफ़ॉर्मेंस की जांच के लिए मैसेज.

  3. 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
    
  4. लाइब्रेरी बनाने और कोड अपने-आप जनरेट करने के लिए, यहां दिया गया कमांड चलाएं प्रोटोकॉल बिल्ड प्लगिन:

      ./gradlew build
    
  5. सर्वर पर TLS को चालू करने के लिए, src/main/certificates/ में जाकर, निम्न फ़ाइलें आवश्यक हैं:

  6. इस डेटा स्टोर करने की जगह से सैंपल कोड वापस पाएं:

      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 का पालन करें लागू करने की प्रोसेस को पूरा करें.

  7. एक्ज़ीक्यूटेबल सर्वर जनरेट करने की जानकारी देने के लिए, 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
    }
    
  8. सर्वर को कंपाइल करें:

    ./gradlew installDist
    
  9. बुकिंग सर्वर चलाएं:

    ./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

अन्य रेफ़रंस