gRPC Java: लाइब्रेरी, सेटअप और कोड उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

gRPC Java: लाइब्रेरी, सेटअप और उपयोग के उदाहरण

gRPC एक आधुनिक, हाई-परफॉर्मेंस RPC (Remote Procedure Call) फ्रेमवर्क है जिसे Google ने डेवलप किया है। यह इंटरफ़ेस डेफिनिशन और डेटा सीरियलाइजेशन के लिए Protocol Buffers (protobuf) और ट्रांसपोर्ट के लिए HTTP/2 का उपयोग करता है। Java इकोसिस्टम में, gRPC आपको तेज़, टाइप-सेफ और स्केलेबल माइक्रोसर्विसेज बनाने में मदद करता है। इस पेज पर हम मुख्य लाइब्रेरी, प्रोजेक्ट सेटअप प्रक्रिया और सर्वर-क्लाइंट के वर्किंग उदाहरण देखेंगे।

Java में gRPC के लिए मुख्य लाइब्रेरी

Java में gRPC के साथ काम करने के लिए तीन मुख्य डिपेंडेंसी की ज़रूरत होती है:

  • io.grpc:grpc-netty-shaded — Netty-आधारित ट्रांसपोर्ट लेयर। यह HTTP/2 और सुरक्षा (TLS) को सपोर्ट करता है। अधिकांश प्रोजेक्ट्स के लिए यही रेकमेंडेड है।
  • io.grpc:grpc-protobuf — Protocol Buffers के साथ इंटीग्रेशन। .proto फ़ाइलों से Java क्लासेस जेनरेट करने की सुविधा देता है।
  • io.grpc:grpc-stub — क्लाइंट और सर्वर स्टब्स बनाने के लिए लाइब्रेरी। रिमोट मेथड कॉल को आसान बनाती है।

इसके अलावा, protobuf-java (मैसेज हैंडलिंग के लिए) और protobuf-gradle-plugin (या Maven के लिए इसका विकल्प) बिल्ड टाइम पर कोड जेनरेशन के लिए ज़रूरी हो सकते हैं।

प्रोजेक्ट सेटअप (Maven)

pom.xml में निम्नलिखित डिपेंडेंसी जोड़ें:

<dependencies>
    <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-netty-shaded</artifactId>
        <version>1.62.0</version>
    </dependency>
    <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-protobuf</artifactId>
        <version>1.62.0</version>
    </dependency>
    <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-stub</artifactId>
        <version>1.62.0</version>
    </dependency>
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.2</version>
    </dependency>
</dependencies>

साथ ही, .proto फ़ाइलों से कोड जेनरेट करने के लिए प्लगइन जोड़ें:

<build>
    <extensions>
        <extension>
            <groupId>kr.motd.maven</groupId>
            <artifactId>os-maven-plugin</artifactId>
            <version>1.7.1</version>
        </extension>
    </extensions>
    <plugins>
        <plugin>
            <groupId>org.xolstice.maven.plugins</groupId>
            <artifactId>protobuf-maven-plugin</artifactId>
            <version>0.6.1</version>
            <configuration>
                <protocArtifact>com.google.protobuf:protoc:3.24.0:exe:${os.detected.classifier}</protocArtifact>
                <pluginId>grpc-java</pluginId>
                <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.62.0:exe:${os.detected.classifier}</pluginArtifact>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>compile-custom</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

.proto फ़ाइल बनाना

src/main/proto/hello.proto फ़ाइल में सर्विस और मैसेज डिफाइन करें:

syntax = "proto3";

package hello;

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply);
}

message HelloRequest {                    

अनुशंसाएँ