प्रतिक्रियाशील धाराएँ: Difference between revisions
No edit summary |
No edit summary |
||
(9 intermediate revisions by 4 users not shown) | |||
Line 10: | Line 10: | ||
}} | }} | ||
प्रतिक्रियाशील धाराएँ गैर-अवरुद्ध बैक प्रेशर के साथ अतुल्यकालिक धारा प्रसंस्करण के लिए एक मानक प्रदान करने की एक पहल है। [1 | '''प्रतिक्रियाशील धाराएँ''' गैर-अवरुद्ध बैक प्रेशर के साथ अतुल्यकालिक धारा प्रसंस्करण के लिए एक मानक प्रदान करने की एक पहल है। <ref name="rs-home">[http://www.reactive-streams.org/ reactive-streams.org]</ref>{{sfn|Walls|2019|loc=§10.1.1 Defining Reactive Streams|pp=243-245}} | ||
__TOC__ | __TOC__ | ||
== उत्पत्ति == | == उत्पत्ति == | ||
प्रतिक्रियाशील धाराएँ की शुरुआत 2013 के अंत में नेटफ्लिक्स, पिवोटल और लाइटबेंड के अभियन्ताओ के बीच एक पहल के रूप में हुई। कुछ | प्रतिक्रियाशील धाराएँ की शुरुआत 2013 के अंत में नेटफ्लिक्स, पिवोटल और लाइटबेंड के अभियन्ताओ के बीच एक पहल के रूप में हुई। कुछ प्रारंभिक चर्चाएं 2013 में लाइटबेंड में प्ले और अक्का टीमों के बीच प्रारंभ हुईं। <ref>[https://medium.com/@kvnwbbr/a-journey-into-reactive-streams-5ee2a9cd7e29#.2wqcc3cja A Journey into Reactive Streams]</ref><ref>[https://medium.com/@viktorklang/reactive-streams-1-0-0-interview-faaca2c00bec#.3gh42y3gd Reactive Streams 1.0.0 interview]</ref> लाइटबेंड प्रतिक्रियाशील धाराएँ के मुख्य योगदानकर्ताओं में से एक है। <ref name="infoq2">[http://www.infoq.com/news/2015/06/Reactive-Streams-JVM-Version Reactive Streams Releases First Stable Version for JVM]</ref> अन्य योगदानकर्ताओं में रेड हैट, ओरेकल, ट्विटर और स्प्रे.आईओ सम्मिलित हैं।<ref name="jaxenter3">[https://jaxenter.com/reactive-streams-1-0-0-a-new-standard-in-reactive-data-processing-117123.html Reactive Streams 1.0.0 – a new standard in reactive data processing]</ref> | ||
== लक्ष्य == | == लक्ष्य == | ||
प्रतिक्रियाशील धाराएँ का मुख्य लक्ष्य अतुल्यकालिक सीमा के पार स्ट्रीम डेटा के आदान-प्रदान को नियंत्रित करना है - जैसे तत्वों को दूसरे थ्रेड या थ्रेड-पूल पर भेजना - जबकि यह सुनिश्चित करना कि प्राप्त करने वाला पक्ष डेटा की | प्रतिक्रियाशील धाराएँ का मुख्य लक्ष्य अतुल्यकालिक सीमा के पार स्ट्रीम डेटा के आदान-प्रदान को नियंत्रित करना है - जैसे तत्वों को दूसरे थ्रेड या थ्रेड-पूल पर भेजना - जबकि यह सुनिश्चित करना कि प्राप्त करने वाला पक्ष डेटा की स्वेच्छाचारी मात्रा को बफर करने के लिए विवश नहीं है। दूसरे शब्दों में, धागों के बीच मध्यस्थता करने वाली कतारों को सीमित करने की अनुमति देने के लिए बैक प्रेशर इस मॉडल का अभिन्न अंग है। | ||
विनिर्देश का अभिप्राय कई अनुरूप [[कार्यान्वयन]] के निर्माण की अनुमति देना है, जो नियमों का पालन करने के आधार पर एक स्ट्रीम अनुप्रयोग के संपूर्ण प्रसंस्करण ग्राफ में उल्लिखित लाभों और विशेषताओं को संरक्षित करते हुए, सुचारू रूप से [[ इंटरोऑपरेबिलिटी ]] करने में सक्षम होंगे। निःशुल्क उपलब्ध [[प्रौद्योगिकी अनुकूलता किट]] <ref name="rs-tck">{{cite web|url=https://github.com/reactive-streams/reactive-streams-jvm/tree/master/tck|title=प्रतिक्रियाशील धाराएँ टीसीके|website=[[GitHub]] }}</ref> विनिर्देश के साथ विकसित किया गया था जो विनिर्देश के कार्यान्वयनकर्ताओं को यह सत्यापित करने की अनुमति देता है कि क्या वे संभावित संतति स्थितियों की जांच सहित सभी नियमों और आवश्यकताओं का आवरण करते हैं। | विनिर्देश का अभिप्राय कई अनुरूप [[कार्यान्वयन]] के निर्माण की अनुमति देना है, जो नियमों का पालन करने के आधार पर एक स्ट्रीम अनुप्रयोग के संपूर्ण प्रसंस्करण ग्राफ में उल्लिखित लाभों और विशेषताओं को संरक्षित करते हुए, सुचारू रूप से [[ इंटरोऑपरेबिलिटी ]] करने में सक्षम होंगे। निःशुल्क उपलब्ध [[प्रौद्योगिकी अनुकूलता किट]] <ref name="rs-tck">{{cite web|url=https://github.com/reactive-streams/reactive-streams-jvm/tree/master/tck|title=प्रतिक्रियाशील धाराएँ टीसीके|website=[[GitHub]] }}</ref> विनिर्देश के साथ विकसित किया गया था जो विनिर्देश के कार्यान्वयनकर्ताओं को यह सत्यापित करने की अनुमति देता है कि क्या वे संभावित संतति स्थितियों की जांच सहित सभी नियमों और आवश्यकताओं का आवरण करते हैं। | ||
रिएक्टिव स्ट्रीम का दायरा इंटरफेस, विधियों और प्रोटोकॉल का एक न्यूनतम सेट है जो गैर-अवरुद्ध बैक प्रेशर के साथ डेटा की अतुल्यकालिक धाराओं को प्राप्त करने के लिए आवश्यक संचालन और इकाइयों का वर्णन करता है।{{sfn|Walls|2019|loc=§10.1.1 Defining Reactive Streams|pp=243-245}} [[अंतिम उपयोगकर्ता]] [[डोमेन-विशिष्ट भाषा|डोमेन-विशिष्ट लैंग्वेज]] या प्रोटोकॉल बाइंडिंग [[एपीआई]] को अभिप्रायपूर्वक भिन्न-भिन्न कार्यान्वयन को प्रोत्साहित करने और सक्षम करने के चक्र से बाहर रखा गया है। जो संभावित रूप से अपने प्लेटफ़ॉर्म के मुहावरों के लिए यथासंभव सही रहने के लिए विभिन्न [[प्रोग्रामिंग भाषा|प्रोग्रामिंग लैंग्वेजओं]] ओं का उपयोग करते हैं। | |||
== जावा मानक में समावेश == | == जावा मानक में समावेश == | ||
सफल सिद्ध होने और पर्याप्त लाइब्रेरी और विक्रेताओं द्वारा अपनाए जाने पर, आधिकारिक जावा मानक लाइब्रेरी में भविष्य में | सफल सिद्ध होने और पर्याप्त लाइब्रेरी और विक्रेताओं द्वारा अपनाए जाने पर, आधिकारिक जावा मानक लाइब्रेरी में भविष्य में सम्मिलित करने के इरादे से विनिर्देश विकसित किया गया। | ||
[https://hi.wikipedia.org/wiki/%E0%A4%9C%E0%A5%87%E0%A4%8F%E0%A4%B8%E0%A4%86%E0%A4%B0_166] [[जेएसआर 166]] के नेता [[डौग ली]] द्वारा प्रतिक्रियाशील धाराएँ को [[ जावा (सॉफ़्टवेयर प्लेटफ़ॉर्म) ]] 9 का खंड बनने का प्रस्ताव दिया गया था। <ref>{{Cite web |url=http://cs.oswego.edu/pipermail/concurrency-interest/2015-January/013641.html |title=jdk9 Candidate classes Flow and SubmissionPublisher |access-date=2015-12-23 |archive-date=2015-01-20 |archive-url=https://web.archive.org/web/20150120055013/http://cs.oswego.edu/pipermail/concurrency-interest/2015-January/013641.html |url-status=dead }}</ref> एक नए प्रवाह वर्ग के रूप में<ref>{{Cite web |url=http://gee.cs.oswego.edu/dl/jsr166/dist/docs/java/util/concurrent/Flow.html |title=java.util.concurrent.Flow|access-date=2015-12-23 |archive-date=2016-02-03 |archive-url=https://web.archive.org/web/20160203191314/http://gee.cs.oswego.edu/dl/jsr166/dist/docs/java/util/concurrent/Flow.html |url-status=dead }}</ref> इसमें वर्तमान में प्रतिक्रियाशील धाराएँ द्वारा प्रदान किए गए इंटरफेस | [https://hi.wikipedia.org/wiki/%E0%A4%9C%E0%A5%87%E0%A4%8F%E0%A4%B8%E0%A4%86%E0%A4%B0_166] [[जेएसआर 166]] के नेता [[डौग ली]] द्वारा प्रतिक्रियाशील धाराएँ को [[ जावा (सॉफ़्टवेयर प्लेटफ़ॉर्म) ]] 9 का खंड बनने का प्रस्ताव दिया गया था। <ref>{{Cite web |url=http://cs.oswego.edu/pipermail/concurrency-interest/2015-January/013641.html |title=jdk9 Candidate classes Flow and SubmissionPublisher |access-date=2015-12-23 |archive-date=2015-01-20 |archive-url=https://web.archive.org/web/20150120055013/http://cs.oswego.edu/pipermail/concurrency-interest/2015-January/013641.html |url-status=dead }}</ref> एक नए प्रवाह वर्ग के रूप में<ref>{{Cite web |url=http://gee.cs.oswego.edu/dl/jsr166/dist/docs/java/util/concurrent/Flow.html |title=java.util.concurrent.Flow|access-date=2015-12-23 |archive-date=2016-02-03 |archive-url=https://web.archive.org/web/20160203191314/http://gee.cs.oswego.edu/dl/jsr166/dist/docs/java/util/concurrent/Flow.html |url-status=dead }}</ref> इसमें वर्तमान में प्रतिक्रियाशील धाराएँ द्वारा प्रदान किए गए इंटरफेस सम्मिलित होंगे। <ref name="infoq"/><ref name="jep266">[http://openjdk.java.net/jeps/266 JEP 266: More Concurrency Updates]</ref> प्रतिक्रियाशील धाराएँ की सफल 1.0 रिलीज और बढ़ती स्वीकार्यता के बाद, प्रस्ताव को स्वीकार कर लिया गया और [[ जेडीके संवर्धन प्रस्ताव | जेडीके संवर्धन प्रस्ताव जे.ई.पी]]-266 के माध्यम से प्रतिक्रियाशील धाराएँ को जावा (सॉफ्टवेयर प्लेटफॉर्म) में सम्मिलित किया गया।<ref name="jep266"/><ref name="jep2662">[http://openjdk.java.net/jeps/266 JEP 266: More Concurrency Updates]</ref> | ||
== गोद लेना == | == गोद लेना == | ||
30 अप्रैल, 2015 को [[जेवीएम]] के लिए प्रतिक्रियाशील धाराएँ का संस्करण 1.0.0 जारी किया गया था,<ref name="infoq">[http://www.infoq.com/news/2015/06/Reactive-Streams-JVM-Version Reactive Streams Releases First Stable Version for JVM]</ref><ref name="jaxenter">[https://jaxenter.com/reactive-streams-1-0-0-a-new-standard-in-reactive-data-processing-117123.html Reactive Streams 1.0.0 – a new standard in reactive data processing]</ref><ref name="announce-1.0">[http://www.reactive-streams.org/announce-1.0.0 Reactive Streams 1.0.0 is here!]</ref> | 30 अप्रैल, 2015 को [[जेवीएम]] के लिए प्रतिक्रियाशील धाराएँ का संस्करण 1.0.0 जारी किया गया था,<ref name="infoq">[http://www.infoq.com/news/2015/06/Reactive-Streams-JVM-Version Reactive Streams Releases First Stable Version for JVM]</ref><ref name="jaxenter">[https://jaxenter.com/reactive-streams-1-0-0-a-new-standard-in-reactive-data-processing-117123.html Reactive Streams 1.0.0 – a new standard in reactive data processing]</ref><ref name="announce-1.0">[http://www.reactive-streams.org/announce-1.0.0 Reactive Streams 1.0.0 is here!]</ref> जावा एपीआई सहित,<ref>[http://www.reactive-streams.org/reactive-streams-1.0.0-javadoc/ Java API]</ref> एक पाठ्य विशिष्टता,<ref>[https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.0/README.md#specification Reactive Streams for the JVM specification]</ref> एक प्रौद्योगिकी अनुकूलता किट और कार्यान्वयन उदाहरण। यह 1.0.0 के लिए टीसीके द्वारा सत्यापित अनेक अनुरूप कार्यान्वयनों के साथ आता है, जो वर्णानुक्रम में सूचीबद्ध हैं:<ref name="announce-1.0"/> | ||
* अक्का (टूलकिट) स्ट्रीम <ref>[http://www.infoq.com/news/2014/04/reactive-streams-akka-streams InfoQ: Reactive Streams with Akka Streams]</ref><ref>{{Cite web |url=http://doc.akka.io/docs/akka-stream-and-http-experimental/2.0.1/stream-design.html |title=अक्का स्ट्रीम के पीछे डिज़ाइन सिद्धांत|access-date=2015-12-23 |archive-date=2016-01-12 |archive-url=https://web.archive.org/web/20160112054130/http://doc.akka.io/docs/akka-stream-and-http-experimental/2.0.1/stream-design.html |url-status=dead }}</ref> | * अक्का (टूलकिट) स्ट्रीम <ref>[http://www.infoq.com/news/2014/04/reactive-streams-akka-streams InfoQ: Reactive Streams with Akka Streams]</ref><ref>{{Cite web |url=http://doc.akka.io/docs/akka-stream-and-http-experimental/2.0.1/stream-design.html |title=अक्का स्ट्रीम के पीछे डिज़ाइन सिद्धांत|access-date=2015-12-23 |archive-date=2016-01-12 |archive-url=https://web.archive.org/web/20160112054130/http://doc.akka.io/docs/akka-stream-and-http-experimental/2.0.1/stream-design.html |url-status=dead }}</ref> | ||
* [https://hi.wikipedia.org/wiki/MongoDB][[MongoDB|मोंगोडीबी]] <ref>[https://mongodb.github.io/mongo-java-driver-reactivestreams/ MongoDB Reactive Streams Java Driver]</ref> | * [https://hi.wikipedia.org/wiki/MongoDB][[MongoDB|मोंगोडीबी]] <ref>[https://mongodb.github.io/mongo-java-driver-reactivestreams/ MongoDB Reactive Streams Java Driver]</ref> | ||
* रैटपैक <ref>[https://ratpack.io/manual/current/streams.html#the_reactive_streams_api Ratpack: The Reactive Streams API]</ref> | * रैटपैक <ref>[https://ratpack.io/manual/current/streams.html#the_reactive_streams_api Ratpack: The Reactive Streams API]</ref> | ||
* प्रतिक्रियाशील रैबिट{{snd}} [[RabbitMQ|रैबिटएमक्यू]]/[[AMQP]] के लिए ड्राइवर | * प्रतिक्रियाशील रैबिट{{snd}} [[RabbitMQ|रैबिटएमक्यू]]/[[AMQP|एएमक्यूपी]] के लिए ड्राइवर | ||
* [[स्प्रिंग फ्रेमवर्क]] {{sfn|Walls|2019|loc=§10.1.1 Defining Reactive Streams|pp=243-245}} और पिवोटल सॉफ्टवेयर परियोजना रिएक्टर <ref>[https://spring.io/blog/2015/02/18/reactor-2-0-0-rc1-with-native-reactive-streams-support-now-available Reactor 2.0.0.RC1 with native Reactive Streams support now available!]</ref> | * [[स्प्रिंग फ्रेमवर्क]] {{sfn|Walls|2019|loc=§10.1.1 Defining Reactive Streams|pp=243-245}} और पिवोटल सॉफ्टवेयर परियोजना रिएक्टर <ref>[https://spring.io/blog/2015/02/18/reactor-2-0-0-rc1-with-native-reactive-streams-support-now-available Reactor 2.0.0.RC1 with native Reactive Streams support now available!]</ref> | ||
* नेटफ्लिक्स आरएक्सजावा <ref>[http://akarnokd.blogspot.com/2015/06/the-reactive-streams-api-part-1.html Advanced RxJava: The Reactive-Streams API (part 1)]</ref> | * नेटफ्लिक्स आरएक्सजावा <ref>[http://akarnokd.blogspot.com/2015/06/the-reactive-streams-api-part-1.html Advanced RxJava: The Reactive-Streams API (part 1)]</ref> | ||
Line 40: | Line 40: | ||
*[https://smallrye.io/smallrye-mutiny/index.html विद्रोह] | *[https://smallrye.io/smallrye-mutiny/index.html विद्रोह] | ||
*[https://helidon.io/docs/v2/#/se/reactivestreams/01_overview हेलिडॉन] | *[https://helidon.io/docs/v2/#/se/reactivestreams/01_overview हेलिडॉन] | ||
अन्य कार्यान्वयनों में [[अपाचे कैसेंड्रा]],<ref>[http://www.planetcassandra.org/blog/accessing-cassandra-in-a-reactive-way/ Accessing Cassandra in a Reactive Way]</ref> | अन्य कार्यान्वयनों में [[अपाचे कैसेंड्रा]],<ref>[http://www.planetcassandra.org/blog/accessing-cassandra-in-a-reactive-way/ Accessing Cassandra in a Reactive Way]</ref> [[:hi:elastic_search|इलास्टिक्स]]सर्च,<ref>[https://github.com/sksamuel/elastic4s elastic4s — Non blocking, type safe DSL and Scala client for Elasticsearch]</ref> [[अपाचे काफ्का]],<ref>[https://softwaremill.com/reactive-kafka/ Reactive Streams for Apache Kafka]</ref> समानांतर ब्रह्मांड क्वासर,<ref>{{Cite web |url=http://blog.paralleluniverse.co/2015/06/25/reactive-streams/ |title=क्वासर और प्रतिक्रियाशील धाराएँ|access-date=2015-12-24 |archive-date=2015-10-04 |archive-url=https://web.archive.org/web/20151004213200/http://blog.paralleluniverse.co/2015/06/25/reactive-streams/ |url-status=dead }}</ref> प्ले फ्रेमवर्क,<ref>[https://www.playframework.com/documentation/2.4.x/ReactiveStreamsIntegration Play Framework — Reactive Streams integration (experimental)]</ref> शस्त्रागार.<ref>[https://line.github.io/armeria/index.html#completely-asynchronous-and-reactive Armeria - Completely asynchronous and reactive]</ref> | ||
स्प्रिंग 5 को प्रतिक्रियाशील धाराएँ संगत प्रतिक्रिया आन्तरक पर बनाने की घोषणा की गई है। | स्प्रिंग 5 को प्रतिक्रियाशील धाराएँ संगत प्रतिक्रिया आन्तरक पर बनाने की घोषणा की गई है। | ||
Line 46: | Line 46: | ||
अमेज़ॅन (कंपनी) ने घोषणा की कि उसकी [[अमेज़न वेब सेवाएँ]] [[ सॉफ़्टवेयर विकास किट | सॉफ़्टवेयर विकास किट]] संस्करण 2.0 में अपने क्लाइंट लाइब्रेरी में स्ट्रीमिंग क्षमताएं प्रदान करने के लिए प्रतिक्रियाशील धाराएँ का समर्थन करेगी। <ref name="aws">{{cite web|url=https://aws.amazon.com/blogs/developer/aws-sdk-for-java-2-0-developer-preview/|title=AWS SDK for Java 2.0 developer preview announcement}}</ref> | अमेज़ॅन (कंपनी) ने घोषणा की कि उसकी [[अमेज़न वेब सेवाएँ]] [[ सॉफ़्टवेयर विकास किट | सॉफ़्टवेयर विकास किट]] संस्करण 2.0 में अपने क्लाइंट लाइब्रेरी में स्ट्रीमिंग क्षमताएं प्रदान करने के लिए प्रतिक्रियाशील धाराएँ का समर्थन करेगी। <ref name="aws">{{cite web|url=https://aws.amazon.com/blogs/developer/aws-sdk-for-java-2-0-developer-preview/|title=AWS SDK for Java 2.0 developer preview announcement}}</ref> | ||
प्रतिक्रियाशील धाराएँ 1.0.1 9 अगस्त, 2017 को जारी किया गया है, जिसमें विनिर्देशन सटीकता, टीसीके सुधार और अन्य स्पष्टीकरण में विभिन्न सुधार | प्रतिक्रियाशील धाराएँ 1.0.1 9 अगस्त, 2017 को जारी किया गया है, जिसमें विनिर्देशन सटीकता, टीसीके सुधार और अन्य स्पष्टीकरण में विभिन्न सुधार सम्मिलित हैं। विनिर्देश और इंटरफ़ेस 1.0.0 संस्करण के साथ पूरी तरह से पीछे की ओर संगत रहे, चूंकि इसका उद्देश्य भविष्य के कार्यान्वयनकर्ताओं के लिए अपनाने को सुव्यवस्थित करना और साथ ही [[ओपनजेडीके]] द्वारा निर्धारित कुछ अतिरिक्त आवश्यकताओं के साथ संरेखित करना था। <ref>{{cite web|url=http://www.reactive-streams.org/announce-1.0.1|title=Reactive Streams 1.0.1 Release Announcement}}</ref> | ||
== | == पोर्ट ऐन्ड इन्फ्लूअन्स == | ||
* | * नेट प्लेटफॉर्म के लिए एक ही कार्य समूह के तहत विनिर्देश, इंटरफेस और टीसीके का एक सीधा पोर्ट उपलब्ध कराया गया था।<ref>{{cite web|url=https://github.com/reactive-streams/reactive-streams-dotnet|title=रिएक्टिव स्ट्रीम .NET|website=[[GitHub]] }}</ref> | ||
* जब एलिक्सिर (प्रोग्रामिंग लैंग्वेज) लैंग्वेज ने जेनस्टेज नामक अपनी द्रवीभूत एपीआई | * जब एलिक्सिर (प्रोग्रामिंग लैंग्वेज) लैंग्वेज ने जेनस्टेज नामक अपनी द्रवीभूत एपीआई प्रस्तुत की, तो लेखकों ने अक्का-स्ट्रीम और प्रतिक्रियाशील धाराएँ परियोजनाओं को धन्यवाद दिया।<ref>{{cite web|url=https://elixir-lang.org/blog/2016/07/14/announcing-genstage/|title=Elixir blog: Announcing GenStage}}</ref> | ||
Line 73: | Line 73: | ||
* [[File:CC0 button.svg|50px|link=|alt=]] ''This article incorporates text from {{URL|http://www.reactive-streams.org/}}, which is released under a CC0 1.0 Universal (CC0 1.0) Public Domain Dedication''. | * [[File:CC0 button.svg|50px|link=|alt=]] ''This article incorporates text from {{URL|http://www.reactive-streams.org/}}, which is released under a CC0 1.0 Universal (CC0 1.0) Public Domain Dedication''. | ||
[[Category:CS1 English-language sources (en)]] | |||
[[Category: | |||
[[Category:Created On 11/07/2023]] | [[Category:Created On 11/07/2023]] | ||
[[Category:Machine Translated Page]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:खुले मानक]] | |||
[[Category:जावा प्लेटफार्म]] |
Latest revision as of 11:39, 14 August 2023
Initial release | 15 May 2015 |
---|---|
Stable release | 1.0.3
/ 23 August 2019 |
Repository | github |
Written in | Java (Scala, Groovy, Kotlin), .NET |
Website | reactive-streams |
प्रतिक्रियाशील धाराएँ गैर-अवरुद्ध बैक प्रेशर के साथ अतुल्यकालिक धारा प्रसंस्करण के लिए एक मानक प्रदान करने की एक पहल है। [1][2]
उत्पत्ति
प्रतिक्रियाशील धाराएँ की शुरुआत 2013 के अंत में नेटफ्लिक्स, पिवोटल और लाइटबेंड के अभियन्ताओ के बीच एक पहल के रूप में हुई। कुछ प्रारंभिक चर्चाएं 2013 में लाइटबेंड में प्ले और अक्का टीमों के बीच प्रारंभ हुईं। [3][4] लाइटबेंड प्रतिक्रियाशील धाराएँ के मुख्य योगदानकर्ताओं में से एक है। [5] अन्य योगदानकर्ताओं में रेड हैट, ओरेकल, ट्विटर और स्प्रे.आईओ सम्मिलित हैं।[6]
लक्ष्य
प्रतिक्रियाशील धाराएँ का मुख्य लक्ष्य अतुल्यकालिक सीमा के पार स्ट्रीम डेटा के आदान-प्रदान को नियंत्रित करना है - जैसे तत्वों को दूसरे थ्रेड या थ्रेड-पूल पर भेजना - जबकि यह सुनिश्चित करना कि प्राप्त करने वाला पक्ष डेटा की स्वेच्छाचारी मात्रा को बफर करने के लिए विवश नहीं है। दूसरे शब्दों में, धागों के बीच मध्यस्थता करने वाली कतारों को सीमित करने की अनुमति देने के लिए बैक प्रेशर इस मॉडल का अभिन्न अंग है।
विनिर्देश का अभिप्राय कई अनुरूप कार्यान्वयन के निर्माण की अनुमति देना है, जो नियमों का पालन करने के आधार पर एक स्ट्रीम अनुप्रयोग के संपूर्ण प्रसंस्करण ग्राफ में उल्लिखित लाभों और विशेषताओं को संरक्षित करते हुए, सुचारू रूप से इंटरोऑपरेबिलिटी करने में सक्षम होंगे। निःशुल्क उपलब्ध प्रौद्योगिकी अनुकूलता किट [7] विनिर्देश के साथ विकसित किया गया था जो विनिर्देश के कार्यान्वयनकर्ताओं को यह सत्यापित करने की अनुमति देता है कि क्या वे संभावित संतति स्थितियों की जांच सहित सभी नियमों और आवश्यकताओं का आवरण करते हैं।
रिएक्टिव स्ट्रीम का दायरा इंटरफेस, विधियों और प्रोटोकॉल का एक न्यूनतम सेट है जो गैर-अवरुद्ध बैक प्रेशर के साथ डेटा की अतुल्यकालिक धाराओं को प्राप्त करने के लिए आवश्यक संचालन और इकाइयों का वर्णन करता है।[2] अंतिम उपयोगकर्ता डोमेन-विशिष्ट लैंग्वेज या प्रोटोकॉल बाइंडिंग एपीआई को अभिप्रायपूर्वक भिन्न-भिन्न कार्यान्वयन को प्रोत्साहित करने और सक्षम करने के चक्र से बाहर रखा गया है। जो संभावित रूप से अपने प्लेटफ़ॉर्म के मुहावरों के लिए यथासंभव सही रहने के लिए विभिन्न प्रोग्रामिंग लैंग्वेजओं ओं का उपयोग करते हैं।
जावा मानक में समावेश
सफल सिद्ध होने और पर्याप्त लाइब्रेरी और विक्रेताओं द्वारा अपनाए जाने पर, आधिकारिक जावा मानक लाइब्रेरी में भविष्य में सम्मिलित करने के इरादे से विनिर्देश विकसित किया गया।
[1] जेएसआर 166 के नेता डौग ली द्वारा प्रतिक्रियाशील धाराएँ को जावा (सॉफ़्टवेयर प्लेटफ़ॉर्म) 9 का खंड बनने का प्रस्ताव दिया गया था। [8] एक नए प्रवाह वर्ग के रूप में[9] इसमें वर्तमान में प्रतिक्रियाशील धाराएँ द्वारा प्रदान किए गए इंटरफेस सम्मिलित होंगे। [10][11] प्रतिक्रियाशील धाराएँ की सफल 1.0 रिलीज और बढ़ती स्वीकार्यता के बाद, प्रस्ताव को स्वीकार कर लिया गया और जेडीके संवर्धन प्रस्ताव जे.ई.पी-266 के माध्यम से प्रतिक्रियाशील धाराएँ को जावा (सॉफ्टवेयर प्लेटफॉर्म) में सम्मिलित किया गया।[11][12]
गोद लेना
30 अप्रैल, 2015 को जेवीएम के लिए प्रतिक्रियाशील धाराएँ का संस्करण 1.0.0 जारी किया गया था,[10][13][14] जावा एपीआई सहित,[15] एक पाठ्य विशिष्टता,[16] एक प्रौद्योगिकी अनुकूलता किट और कार्यान्वयन उदाहरण। यह 1.0.0 के लिए टीसीके द्वारा सत्यापित अनेक अनुरूप कार्यान्वयनों के साथ आता है, जो वर्णानुक्रम में सूचीबद्ध हैं:[14]
- अक्का (टूलकिट) स्ट्रीम [17][18]
- [2]मोंगोडीबी [19]
- रैटपैक [20]
- प्रतिक्रियाशील रैबिट – रैबिटएमक्यू/एएमक्यूपी के लिए ड्राइवर
- स्प्रिंग फ्रेमवर्क [2] और पिवोटल सॉफ्टवेयर परियोजना रिएक्टर [21]
- नेटफ्लिक्स आरएक्सजावा [22]
- चालाक (लाइब्रेरी) 3.0 [23][24]
- Vert.x 3.0[25]
- विद्रोह
- हेलिडॉन
अन्य कार्यान्वयनों में अपाचे कैसेंड्रा,[26] इलास्टिक्ससर्च,[27] अपाचे काफ्का,[28] समानांतर ब्रह्मांड क्वासर,[29] प्ले फ्रेमवर्क,[30] शस्त्रागार.[31]
स्प्रिंग 5 को प्रतिक्रियाशील धाराएँ संगत प्रतिक्रिया आन्तरक पर बनाने की घोषणा की गई है।
अमेज़ॅन (कंपनी) ने घोषणा की कि उसकी अमेज़न वेब सेवाएँ सॉफ़्टवेयर विकास किट संस्करण 2.0 में अपने क्लाइंट लाइब्रेरी में स्ट्रीमिंग क्षमताएं प्रदान करने के लिए प्रतिक्रियाशील धाराएँ का समर्थन करेगी। [32]
प्रतिक्रियाशील धाराएँ 1.0.1 9 अगस्त, 2017 को जारी किया गया है, जिसमें विनिर्देशन सटीकता, टीसीके सुधार और अन्य स्पष्टीकरण में विभिन्न सुधार सम्मिलित हैं। विनिर्देश और इंटरफ़ेस 1.0.0 संस्करण के साथ पूरी तरह से पीछे की ओर संगत रहे, चूंकि इसका उद्देश्य भविष्य के कार्यान्वयनकर्ताओं के लिए अपनाने को सुव्यवस्थित करना और साथ ही ओपनजेडीके द्वारा निर्धारित कुछ अतिरिक्त आवश्यकताओं के साथ संरेखित करना था। [33]
पोर्ट ऐन्ड इन्फ्लूअन्स
- नेट प्लेटफॉर्म के लिए एक ही कार्य समूह के तहत विनिर्देश, इंटरफेस और टीसीके का एक सीधा पोर्ट उपलब्ध कराया गया था।[34]
- जब एलिक्सिर (प्रोग्रामिंग लैंग्वेज) लैंग्वेज ने जेनस्टेज नामक अपनी द्रवीभूत एपीआई प्रस्तुत की, तो लेखकों ने अक्का-स्ट्रीम और प्रतिक्रियाशील धाराएँ परियोजनाओं को धन्यवाद दिया।[35]
उद्धरण
- ↑ reactive-streams.org
- ↑ 2.0 2.1 2.2 Walls 2019, pp. 243–245, §10.1.1 Defining Reactive Streams.
- ↑ A Journey into Reactive Streams
- ↑ Reactive Streams 1.0.0 interview
- ↑ Reactive Streams Releases First Stable Version for JVM
- ↑ Reactive Streams 1.0.0 – a new standard in reactive data processing
- ↑ "प्रतिक्रियाशील धाराएँ टीसीके". GitHub.
- ↑ "jdk9 Candidate classes Flow and SubmissionPublisher". Archived from the original on 2015-01-20. Retrieved 2015-12-23.
- ↑ "java.util.concurrent.Flow". Archived from the original on 2016-02-03. Retrieved 2015-12-23.
- ↑ 10.0 10.1 Reactive Streams Releases First Stable Version for JVM
- ↑ 11.0 11.1 JEP 266: More Concurrency Updates
- ↑ JEP 266: More Concurrency Updates
- ↑ Reactive Streams 1.0.0 – a new standard in reactive data processing
- ↑ 14.0 14.1 Reactive Streams 1.0.0 is here!
- ↑ Java API
- ↑ Reactive Streams for the JVM specification
- ↑ InfoQ: Reactive Streams with Akka Streams
- ↑ "अक्का स्ट्रीम के पीछे डिज़ाइन सिद्धांत". Archived from the original on 2016-01-12. Retrieved 2015-12-23.
- ↑ MongoDB Reactive Streams Java Driver
- ↑ Ratpack: The Reactive Streams API
- ↑ Reactor 2.0.0.RC1 with native Reactive Streams support now available!
- ↑ Advanced RxJava: The Reactive-Streams API (part 1)
- ↑ Slick 3: Reactive Streams for Asynchronous Database Access in Scala
- ↑ Slick 3.0.0
- ↑ Vert.x Reactive Streams Integration
- ↑ Accessing Cassandra in a Reactive Way
- ↑ elastic4s — Non blocking, type safe DSL and Scala client for Elasticsearch
- ↑ Reactive Streams for Apache Kafka
- ↑ "क्वासर और प्रतिक्रियाशील धाराएँ". Archived from the original on 2015-10-04. Retrieved 2015-12-24.
- ↑ Play Framework — Reactive Streams integration (experimental)
- ↑ Armeria - Completely asynchronous and reactive
- ↑ "AWS SDK for Java 2.0 developer preview announcement".
- ↑ "Reactive Streams 1.0.1 Release Announcement".
- ↑ "रिएक्टिव स्ट्रीम .NET". GitHub.
- ↑ "Elixir blog: Announcing GenStage".
संदर्भ
- Walls, Craig (October 2019). Spring in Action (in English) (Fifth ed.). Manning. p. 520. ISBN 9781617294945.
- This article incorporates text from www
.reactive-streams .org, which is released under a CC0 1.0 Universal (CC0 1.0) Public Domain Dedication.