Netty Java: पूर्ण गाइड उदाहरणों के साथ

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

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

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

Netty क्या है और इसकी आवश्यकता क्यों है?

Netty एक asynchronous नेटवर्क लाइब्रेरी है Java के लिए, जो हाई-परफॉर्मेंस सर्वर और क्लाइंट एप्लिकेशन बनाने में मदद करती है। यह sockets, threads और NIO (Non-blocking I/O) की जटिलता को छिपाकर डेवलपर को एक सरल और शक्तिशाली API प्रदान करती है।

Netty की आवश्यकता क्यों है?

  • उच्च प्रदर्शन: Netty Java NIO पर आधारित है, जो हजारों एक साथ कनेक्शन को बिना अलग-अलग thread बनाए संभाल सकती है।
  • Asynchronous: सभी I/O ऑपरेशन thread को ब्लॉक नहीं करते, जिससे एप्लिकेशन की स्केलेबिलिटी बढ़ती है।
  • उपयोग में आसान: अंतर्निहित तकनीकों की जटिलता के बावजूद, Netty एक स्पष्ट और संक्षिप्त API प्रदान करती है।
  • लचीलापन: Netty की आर्किटेक्चर pipeline of handlers पर आधारित है, जिससे डेटा प्रोसेसिंग लॉजिक को आसानी से जोड़ा, हटाया या बदला जा सकता है।
  • विभिन्न प्रोटोकॉल का समर्थन: Netty में HTTP, WebSocket, SSL/TLS, UDP और कई अन्य प्रोटोकॉल के लिए बिल्ट-इन सपोर्ट है।

Netty का उपयोग Apache Cassandra, Apache Spark, Elasticsearch, Twitter Finagle जैसे प्रोजेक्ट्स में व्यापक रूप से किया जाता है।

Netty की स्थापना (Installation)

Netty एक Java लाइब्रेरी है, इसलिए इसे Maven या Gradle जैसे डिपेंडेंसी मैनेजमेंट सिस्टम के माध्यम से स्थापित किया जाता है। Python या JavaScript की तरह यहाँ pip install या npm install कमांड नहीं है।

Maven के माध्यम से स्थापना

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

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.109.Final</version>
</dependency>

Gradle के माध्यम से स्थापना

build.gradle फ़ाइल में जोड़ें:

implementation 'io.netty:netty-all:4.1.109.Final'

Gradle (Kotlin DSL) के माध्यम से स्थापना

implementation("io.netty:netty-all:4.1.109.Final")

डिपेंडेंसी जोड़ने के बाद, आपकी IDE (जैसे IntelliJ IDEA या Eclipse) स्वचालित रूप से लाइब्रेरी डाउनलोड कर लेगी।

त्वरित शुरुआत: एक सरल HTTP सर्वर

चलिए एक सरल HTTP सर्वर बनाते हैं जो किसी भी अनुरोध पर "Hello, World!" का जवाब देता है।

import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioServerSocketChannel;
import io.netty.handler.codec.http.HttpServerCodec;
import io.netty.handler.codec.http.HttpObjectAggregator;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.handler.codec.http.DefaultFullHttpResponse;
import io.netty.handler.codec.http.FullHttpResponse;
import io.netty.handler.codec.http.HttpRequest;
import io.netty.handler.codec.http.HttpResponse;
import io.netty.handler.codec.http.HttpVersion;
import io.netty.buffer.Unpooled;
import io.netty.util.CharsetUtil;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;

public class SimpleHttpServer {

    public static void main(String[] args) throws Exception {
        EventLoopGroup bossGroup = new NioEventLoopGroup(1);
        EventLoopGroup workerGroup = new NioEventLoopGroup();

        try {
            ServerBootstrap b = new ServerBootstrap();
            b.group(bossGroup, workerGroup)
             .channel(NioServerSocketChannel.class)
             .childHandler(new ChannelInitializer<SocketChannel>() {
                 @Override
                 public void initChannel(SocketChannel ch) {                    

अनुशंसाएँ