जेप्राइम 2024 सफलतापूर्वक संपन्न हुआ!!
जेप्राइम 2024 के आयोजकों ने एक बार फिर विविध विषयों की पेशकश करने के लिए हर संभव प्रयास किया है, यह सुनिश्चित करते हुए कि हर किसी के लिए कुछ न कुछ है।
हालांकि, आज का लेख "स्प्रिंग और क्वार्कस के भीतर एकीकरण परीक्षण का विकास" पर माइकल सिमंस के व्याख्यानों में से एक से शुरू नहीं हुआ है, हालांकि यह अत्यधिक व्यावहारिक था। उन्होंने स्प्रिंग बूट में सेटअप पर ध्यान केंद्रित करते हुए एकीकरण परीक्षण रणनीतियों की खोज की।
लेखक ने स्पष्ट रूप से जोर दिया कि जिन मुद्दों पर उन्होंने प्रकाश डाला, उन्हें क्वार्कस में देव सेवाओं के उपयोग के माध्यम से प्रभावी ढंग से संबोधित किया गया है (चित्र 1)। यह एक और कारण उजागर करता है कि क्यों मैं स्प्रिंग बूट को कुछ अनुप्रयोगों के लिए संदेह के साथ देखता हूं - इसकी जटिलताएं क्वार्कस में सुव्यवस्थित समाधानों से बिल्कुल विपरीत हैं, खासकर देव सेवाओं के उपयोग के साथ।
चित्रा 1 - जेप्राइम 2024
डेव सर्विसेज़ ने नए उपस्थित लोगों के बीच जो आश्चर्य प्रकट किया, उसे देखना उल्लेखनीय था। हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि डेव सर्विसेज क्वार्कस में एक हालिया सुविधा नहीं है; यह काफी समय से ढांचे का एक अभिन्न अंग रहा है। आइए क्वार्कस देव सेवाओं के बारे में गहराई से जानें और इसके स्थायी लाभों का पता लगाएं।
क्वार्कस में, देव सेवाएँ विकास और परीक्षण दोनों मोड में अपुष्ट सेवाओं के स्वचालित प्रावधान की सुविधा प्रदान करती हैं। अनिवार्य रूप से, यदि आप किसी एक्सटेंशन को कॉन्फ़िगर किए बिना शामिल करते हैं, तो क्वार्कस स्वचालित रूप से प्रासंगिक सेवा शुरू कर देगा - अक्सर पृष्ठभूमि में टेस्टकंटेनर का उपयोग करके - और इस सेवा का कुशलतापूर्वक उपयोग करने के लिए आपके एप्लिकेशन को कॉन्फ़िगर करेगा।
स्वचालित सेवा का पता लगाना और लॉन्च करना
क्वार्कस देव सर्विसेज डेटाबेस, संदेश ब्रोकर और अन्य बैकएंड सेवाओं जैसी आवश्यक सेवाओं का पता लगाने और लॉन्च करने को स्वचालित करती है। यह फ़ंक्शन pom.xml या build.gradle में निर्दिष्ट एप्लिकेशन की निर्भरता में टैप करता है। उदाहरण के लिए, डेटाबेस ड्राइवर जोड़ने से स्वचालित रूप से देव सेवाएँ उस डेटाबेस के संबंधित कंटेनरीकृत उदाहरण को स्पिन करने के लिए ट्रिगर हो जाती हैं यदि यह पहले से ही नहीं चल रहा है। यहां उपयोग की जाने वाली तकनीक में मुख्य रूप से टेस्टकंटेनर शामिल हैं, जो सामान्य डेटाबेस, सेलेनियम वेब ब्राउज़र, या डॉकर कंटेनर में चलने वाली किसी भी चीज़ के हल्के, थ्रोअवे उदाहरणों के निर्माण की अनुमति देता है।
डायनामिक कॉन्फ़िगरेशन इंजेक्शन
एक बार आवश्यक सेवाएं चालू हो जाने के बाद, क्वार्कस देव सर्विसेज रनटाइम पर एप्लिकेशन के कॉन्फ़िगरेशन में प्रासंगिक सेवा कनेक्शन विवरण को गतिशील रूप से इंजेक्ट करती है। यह बिना किसी मैन्युअल हस्तक्षेप के, सतत परीक्षण नामक सुविधा का उपयोग करके किया जाता है जो मानक डेटाबेस, या अन्य सेवा यूआरएल को ऑटो-प्रावधानित टेस्टकंटेनर में पुन: रूट करता है। यूआरएल, उपयोगकर्ता क्रेडेंशियल और अन्य परिचालन पैरामीटर जैसे कॉन्फ़िगरेशन गुण निर्बाध रूप से सेट किए गए हैं, जिससे एप्लिकेशन को इन सेवाओं के साथ इंटरैक्ट करने की इजाजत मिलती है जैसे कि वे मैन्युअल रूप से कॉन्फ़िगर किए गए थे।
सेवा-विशिष्ट व्यवहार
देव सेवाएँ विभिन्न प्रकार की सेवाओं के लिए तैयार की गई हैं:
नेटवर्क हैंडलिंग और सेवा अलगाव
क्वार्कस देव सर्विसेज द्वारा शुरू की गई प्रत्येक सेवा अपने पृथक वातावरण में चलती है। यह सुनिश्चित करने के लिए महत्वपूर्ण है कि विभिन्न विकास परीक्षणों के बीच कोई पोर्ट विरोध, डेटा अवशेष या सुरक्षा समस्याएँ न हों। इस अलगाव के बावजूद, सेवाओं को डॉकर का उपयोग करके उचित रूप से नेटवर्क किया जाता है, जिससे यह सुनिश्चित होता है कि वे आवश्यकतानुसार एक-दूसरे के साथ संवाद कर सकते हैं, वास्तविक दुनिया के तैनाती माहौल का अनुकरण कर सकते हैं।
जीवन चक्र प्रबंधन
क्वार्कस इन गतिशील रूप से प्रावधानित सेवाओं के संपूर्ण जीवनचक्र का प्रबंधन करता है। जब आप अपना एप्लिकेशन डेवलपमेंट मोड में शुरू करते हैं, तो आवश्यक सेवाएं स्वचालित रूप से शुरू हो जाती हैं। जब आप क्वार्कस एप्लिकेशन को रोकते हैं, तो ये सेवाएँ भी समाप्त हो जाती हैं। इस प्रबंधन में आवश्यकतानुसार डेटा निरंतरता को संभालना शामिल है, जिससे डेवलपर्स को बिना किसी सेटअप देरी के वहीं से काम शुरू करने की अनुमति मिलती है जहां से उन्होंने छोड़ा था।
मान लीजिए कि आप क्वार्कस के साथ PostgreSQL डेटाबेस का उपयोग कर रहे हैं। यदि कोई मौजूदा PostgreSQL कॉन्फ़िगरेशन नहीं पाया जाता है, तो क्वार्कस एक PostgreSQL डॉकर कंटेनर को किकस्टार्ट करेगा और आपके एप्लिकेशन को स्वचालित रूप से कनेक्ट करेगा।
ये सेवाएँ विकास और परीक्षण मोड में डिफ़ॉल्ट रूप से सक्षम हैं, लेकिन यदि आवश्यक हो तो एप्लिकेशन के माध्यम से अक्षम किया जा सकता है। गुण:
quarkus.datasource.devservices.enabled=false
आइए उस परिदृश्य पर विस्तार करें जहां क्वार्कस एक पोस्टग्रेएसक्यूएल डेटाबेस का उपयोग कर रहा है और कैसे देव सेवाएं न्यूनतम परेशानी के साथ इसे सुविधाजनक बनाती हैं।
यदि क्वार्कस को पता चलता है कि कोई भी PostgreSQL कॉन्फ़िगरेशन सक्रिय नहीं है (नहीं चल रहा है या स्पष्ट रूप से कॉन्फ़िगर नहीं किया गया है), तो यह स्वचालित रूप से डॉकर का उपयोग करके एक PostgreSQL कंटेनर शुरू कर देगा। इसे देव सेवाओं के माध्यम से पर्दे के पीछे स्थापित किया गया है।
ओआरएम परत के माध्यम से डेटाबेस के साथ बातचीत करने के लिए, क्वार्कस पैनाचे का उपयोग करने पर विचार करें, जो हाइबरनेट ओआरएम संचालन को सरल बनाता है। यहां बताया गया है कि अपना परिवेश कैसे स्थापित करें:
निर्भरताएं जोड़ें
सबसे पहले, अपने pom.xml में आवश्यक निर्भरताएँ शामिल करें:
io.quarkus quarkus-hibernate-orm-panache io.quarkus quarkus-jdbc-postgresql
इकाई को परिभाषित करें
इसके बाद, अपनी इकाई को परिभाषित करें, जैसे कि सिटीएंटिटी:
@Entity @Table(name = "cities") public class CityEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @Column(name = "public_id") private String publicId; @OneToOne private StateEntity state; @Column(nullable = false, name = "created_at") private Instant createdAt; @Column(nullable = false, name = "last_modified") private Instant lastModified; @PrePersist protected void onCreate() { createdAt = Instant.now(); lastModified = createdAt; } @PreUpdate protected void onUpdate() { lastModified = Instant.now(); } }
रिपॉजिटरी बनाएं
रिपॉजिटरी को कार्यान्वित करें जो सीधे वें डेटाबेस के साथ इंटरैक्ट करेगा:
@ApplicationScoped public class CityRepository implements PanacheRepository{ }
सेवा परत
भंडार का उपयोग करने वाली सेवा परत को परिभाषित करें:
@ApplicationScoped public class CityServiceImpl implements CityService { @Inject CityRepository cityRepository; @Override public long countCities() { return cityRepository.count(); } } public interface CityService { long countCities(); }
संसाधन समापन बिंदु
@Path("/cities") @Tag(name = "City Resource", description = "City APIs") public class CityResource { @Inject CityService cityService; @GET @Path("/count") @Operation(summary = "Get the total number of cities", description = "Returns the total count of cities in the system.") @APIResponse(responseCode = "200", description = "Successful response", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Long.class))) public long count() { return cityService.countCities(); } }
जब आप अपना क्वार्कस एप्लिकेशन (एमवीएन क्वार्कस:डेव) चलाते हैं, तो पोस्टग्रेएसक्यूएल कंटेनर के स्वचालित स्टार्टअप का निरीक्षण करें (चित्रा 2)। यह निर्बाध एकीकरण क्वार्कस देव सेवाओं की शक्ति का उदाहरण देता है, जो आपके एप्लिकेशन के लिए आवश्यक बाहरी सेवाओं के लिए कॉन्फ़िगरेशन और कनेक्शन सेटअप को स्वचालित करके विकास और परीक्षण को काफी सरल बनाता है।
चित्रा 2 - एप्लिकेशन लॉग
क्वार्कस देव सेवाएं विभिन्न सेवाओं के कॉन्फ़िगरेशन और प्रबंधन को संभालकर विकास और परीक्षण चरणों को सुव्यवस्थित करती हैं, जिससे डेवलपर्स को वास्तविक एप्लिकेशन पर अधिक ध्यान केंद्रित करने की अनुमति मिलती है। क्वार्कस देव सेवाओं की एक विस्तृत श्रृंखला का समर्थन करता है, जिनमें शामिल हैं:
क्वार्कस देव सर्विसेज विकास और परीक्षण चरणों के दौरान डेवलपर्स बाहरी सेवाओं को स्थापित करने और एकीकृत करने के तरीके में एक आदर्श बदलाव का प्रतिनिधित्व करती है। पर्यावरण सेटअप का स्वचालन न केवल विकास प्रक्रिया को गति देता है बल्कि कॉन्फ़िगरेशन त्रुटियों की संभावना को भी कम करता है, जिससे टीमों के लिए मजबूत, सुविधा संपन्न एप्लिकेशन बनाने पर ध्यान केंद्रित करना आसान हो जाता है।
क्वार्कस देव सर्विसेज के असाधारण लाभों में से एक डेवलपर उत्पादकता पर जोर देना है। सेवा निर्भरता को मैन्युअल रूप से प्रबंधित करने की आवश्यकता को हटाकर, डेवलपर्स तुरंत व्यावसायिक तर्क और एप्लिकेशन सुविधाओं पर काम शुरू कर सकते हैं। यह सुव्यवस्थित वर्कफ़्लो माइक्रोसर्विसेज आर्किटेक्चर में विशेष रूप से फायदेमंद है जहां कई सेवाओं को एक साथ विकास और एकीकरण की आवश्यकता हो सकती है
निष्कर्षतः, क्वार्कस देव सेवाओं को अपनाने से आपकी विकास टीम की प्रभावशीलता और परियोजना परिणामों पर महत्वपूर्ण प्रभाव पड़ सकता है। क्वार्कस की सादगी और शक्ति प्रयोग को प्रोत्साहित करती है,
त्वरित पुनरावृत्तियाँ, और अंततः तेज़ विकास चक्र। डिजिटल युग में आधुनिक व्यवसायों को फलने-फूलने के लिए इस प्रकार के तकनीकी लाभ की आवश्यकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3