2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
सूक्ष्मसेवावास्तुकलायां सेवानां मध्ये आह्वानसम्बद्धाः अतीव जटिलाः भवितुम् अर्हन्ति, येन समस्यास्थानं, कार्यप्रदर्शनस्य अनुकूलनं च कठिनं भवति । एतस्याः समस्यायाः समाधानार्थं वयं सम्पूर्णे सूक्ष्मसेवावास्तुकलायां अनुरोधलिङ्कानां निरीक्षणाय निदानाय च वितरित-अनुसन्धान-प्रणाल्याः उपयोगं कर्तुं शक्नुमः । जिप्किन् तथा स्प्रिंग् क्लाउड् स्लूथ् इति द्वौ अतीव लोकप्रियौ साधनौ स्तः ये अस्मान् एतत् लक्ष्यं प्राप्तुं साहाय्यं कुर्वन्ति।
सूक्ष्मसेवावास्तुकलायां उपयोक्तृअनुरोधः बहुसेवाभिः संसाधितः भवितुम् अर्हति । वितरित-अनुसन्धान-प्रणालीं विना यदा समस्या भवति तदा अस्माकं कृते कठिनं भवति यत् समस्या कस्यां सेवायां वर्तते, अथवा कस्यां सेवा-कॉल-लिङ्क्-मध्ये अस्ति वितरिताः अनुसन्धानप्रणाल्याः अस्माकं सहायतां कर्तुं शक्नुवन्ति:
अधः वयं Spring Boot अनुप्रयोगे Zipkin तथा Spring Cloud Sleuth इत्येतयोः एकीकरणं कथं करणीयम् इति दर्शयितुं सरलं उदाहरणं उपयुञ्ज्महे ।
प्रथमं अस्माभिः Spring Boot परियोजना निर्मातव्या । शीघ्रं परियोजनां निर्मातुं निम्नलिखितनिर्भरताः योजयितुं च Spring Initializr इत्यस्य उपयोगं कर्तुं शक्नुवन्ति:
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-sleuth</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-zipkin</artifactId>
- </dependency>
- </dependencies>
अस्तिapplication.properties
सञ्चिकायां निम्नलिखितविन्यासं योजयन्तु ।
- spring.application.name=my-service
- server.port=8080
-
- spring.zipkin.base-url=http://localhost:9411
- spring.sleuth.sampler.probability=1.0
spring.zipkin.base-url
जिप्किन् सर्वरस्य पता निर्दिशति ।spring.sleuth.sampler.probability
सर्वाणि अनुसन्धानदत्तांशं लॉग् कर्तुं 1.0 इति सेट् कुर्वन्तु ।सेवा-आह्वानस्य अनुकरणार्थं सरलं REST नियन्त्रकं रचयन्तु:
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.client.RestTemplate;
-
- @RestController
- public class MyController {
-
- private final RestTemplate restTemplate;
-
- public MyController(RestTemplate restTemplate) {
- this.restTemplate = restTemplate;
- }
-
- @GetMapping("/hello")
- public String hello() {
- String response = restTemplate.getForObject("http://localhost:8081/greeting", String.class);
- return "Hello, " + response;
- }
- }
अस्मिन् उदाहरणे ./hello
अन्त्यबिन्दुः अन्यां सेवां आह्वयिष्यति/greeting
अन्त्यबिन्दुः ।
भवान् Docker इत्यस्य माध्यमेन शीघ्रं Zipkin सर्वरं आरभुं शक्नोति:
docker run -d -p 9411:9411 openzipkin/zipkin
स्वस्य Spring Boot अनुप्रयोगं आरभ्य भ्रमणं कुर्वन्तुhttp://localhost:8080/hello
अन्त्यबिन्दुः । अस्मिन् क्षणे Spring Cloud Sleuth स्वयमेव भवतः अनुरोधाय अनुसन्धानसूचनाम् उत्पन्नं करिष्यति तथा च एतां सूचनां Zipkin सर्वरं प्रति प्रेषयिष्यति ।
ब्राउजर् उद्घाट्य भ्रमणं कुर्वन्तुhttp://localhost:9411
, भवन्तः Zipkin इत्यस्य जालपुटं पश्यन्ति । अत्र, प्रत्येकस्य अनुरोधस्य कृते गृहीतः समयः, आह्वानलिङ्क् इत्यादीनि सर्वाणि अनुसरणसूचनाः द्रष्टुं शक्नुवन्ति ।
Zipkin तथा Spring Cloud Sleuth इत्येतयोः एकीकरणेन वयं microservice architecture इत्यस्मिन् वितरितं tracing इत्येतत् सहजतया कार्यान्वितुं शक्नुमः । एतेन न केवलं शीघ्रं समस्यानां स्थानं ज्ञातुं, समाधानं च कर्तुं साहाय्यं भवति, अपितु प्रणालीप्रदर्शनस्य अनुकूलनं कर्तुं अपि साहाय्यं भवति । आशासे यत् एषः ब्लोग् भवद्भ्यः एतौ शक्तिशालिनौ साधनौ अवगन्तुं उपयोक्तुं च साहाय्यं करोति।