উদাহরণ সহ Sleuth এবং Zipkin এর মাধ্যমে Tracing

Spring Cloud Sleuth (Distributed Tracing) - স্প্রিং ক্লাউড (Spring Cloud) - Java Technologies

300

Spring Cloud Sleuth এবং Zipkin হল মাইক্রোসার্ভিস আর্কিটেকচারের মধ্যে ডিস্ট্রিবিউটেড ট্রেসিং করতে ব্যবহৃত টুলস। Sleuth হল একটি Spring Cloud লাইব্রেরি যা অ্যাপ্লিকেশনগুলির মধ্যে ট্রেসিং এবং লগিং পরিচালনা করতে সহায়ক এবং Zipkin হল একটি ডিসেন্ট্রালাইজড ট্রেসিং সিস্টেম যা সব সার্ভিসে ট্রেসিং ডেটা সংগ্রহ এবং বিশ্লেষণ করতে ব্যবহৃত হয়। এই টুলগুলি মাইক্রোসার্ভিসের মধ্যে সিস্টেম ট্রেসিং ও ডিবাগিং সহজ করে তোলে এবং পুরো প্রক্রিয়াটির দৃশ্যমানতা বৃদ্ধি করে।


Spring Cloud Sleuth এবং Zipkin ব্যবহার করার জন্য প্রয়োজনীয় ডিপেনডেন্সি

Spring Cloud Sleuth এবং Zipkin সেটআপ করতে আপনাকে আপনার pom.xml ফাইলে প্রয়োজনীয় ডিপেনডেন্সি যোগ করতে হবে।

<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Cloud Sleuth for Distributed Tracing -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-sleuth</artifactId>
    </dependency>

    <!-- Zipkin Dependency for Distributed Tracing -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>
</dependencies>

এটি Spring Cloud Sleuth এবং Zipkin ইন্টিগ্রেশন নিশ্চিত করবে, যা আপনার মাইক্রোসার্ভিসের মধ্যে ট্রেসিং সক্ষম করবে।


Step 1: Zipkin Server Setup

Zipkin সার্ভারটি একটি সার্ভিস হিসেবে চলবে এবং এটি আপনার সমস্ত মাইক্রোসার্ভিসের ট্রেসিং ডেটা সংগ্রহ করবে। Zipkin সার্ভার চালু করার জন্য, আপনি Docker ব্যবহার করতে পারেন, অথবা আপনি ম্যানুয়ালি Zipkin Server ডিপ্লয় করতে পারেন।

Docker Command (Zipkin Server চালানো)

Zipkin সার্ভার চালানোর জন্য Docker ব্যবহার করতে পারেন:

docker run -d -p 9411:9411 openzipkin/zipkin

এটি Zipkin সার্ভারকে localhost:9411 পোর্টে চালু করবে।


Step 2: Spring Boot অ্যাপ্লিকেশন কনফিগারেশন

Spring Boot অ্যাপ্লিকেশন কনফিগার করার জন্য আপনাকে application.properties বা application.yml ফাইলে Zipkin সার্ভারের URL এবং অন্যান্য কনফিগারেশন যোগ করতে হবে।

application.properties কনফিগারেশন:

# Enable Sleuth for distributed tracing
spring.application.name=my-service
spring.sleuth.enabled=true

# Zipkin server URL
spring.zipkin.baseUrl=http://localhost:9411
spring.sleuth.sampler.probability=1.0  # 100% traces (can be set to 0.1 for 10% traces)
  • spring.application.name=my-service: অ্যাপ্লিকেশনের নাম সেট করুন, যাতে Zipkin সার্ভারে এই নামটি ট্রেসের সাথে সংযুক্ত থাকবে।
  • spring.zipkin.baseUrl=http://localhost:9411: Zipkin সার্ভারের URL.
  • spring.sleuth.sampler.probability=1.0: এটি প্রতি অনুরোধে 100% ট্রেসিং নিশ্চিত করবে।

Step 3: Spring Boot অ্যাপ্লিকেশন ট্রেসিং যুক্ত করা

Spring Boot অ্যাপ্লিকেশন স্বয়ংক্রিয়ভাবে Sleuth এবং Zipkin ইন্টিগ্রেশন দ্বারা ট্রেসিং ডেটা সরবরাহ করবে। আপনি সাধারণ REST API কল ব্যবহার করলে এটি ট্রেসিং তথ্য প্রদান করবে।

Controller Example:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {

    @GetMapping("/call-service")
    public String callService() {
        return "Service response with tracing enabled!";
    }
}

এখানে, /call-service রাউটটি সার্ভিস কল করবে, এবং Spring Cloud Sleuth এই কলের ট্রেসিং তথ্য লগ করবে এবং Zipkin সার্ভারে পাঠাবে।


Step 4: ট্রেসিং ডেটা দেখতে Zipkin UI

Zipkin UI তে ট্রেসিং তথ্য দেখতে, আপনার ব্রাউজারে http://localhost:9411 URL-এ যান। এখানে আপনি সমস্ত সার্ভিসের ট্রেসিং ডেটা দেখতে পারবেন।

  • Search: সার্ভিসের নাম অনুসারে সার্চ করুন (যেমন my-service).
  • Trace Details: নির্দিষ্ট ট্রেসের ডিটেইলস দেখুন, যেমন ট্রেস আইডি, সার্ভিস কলের সময়, রেসপন্স টাইম, এবং অন্যান্য তথ্য।

Step 5: ট্রেসিং তথ্য বিশ্লেষণ করা

Zipkin UI তে আপনি দেখতে পারবেন যে কিভাবে ট্রেসিং ডেটা একটি সার্ভিস থেকে অন্য সার্ভিসে প্রবাহিত হচ্ছে। এখানে কয়েকটি গুরুত্বপূর্ণ বিষয় থাকবে:

  • Trace ID: এটি সমস্ত ট্রেসিং তথ্যের জন্য একটি ইউনিক আইডি যা সার্ভিস কলগুলোকে সম্পর্কিত রাখে।
  • Span ID: এটি প্রতিটি ইনডিভিজুয়াল সার্ভিস কলের জন্য একটি ইউনিক আইডি।
  • Duration: সার্ভিস কলের দৈর্ঘ্য।
  • Dependencies: সার্ভিসগুলির মধ্যে সম্পর্ক এবং কল স্ট্রাকচার।

Sleuth এবং Zipkin এর মাধ্যমে Tracing এর সুবিধা

  1. Distributed Tracing:
    • মাইক্রোসার্ভিসের মধ্যে ট্রেসিং নিশ্চিত করে, যাতে সার্ভিসগুলো একে অপরকে কীভাবে কল করছে এবং ট্রান্স্যাকশন চলাকালে কোথায় সময় ব্যয় হচ্ছে তা বিশ্লেষণ করা যায়।
  2. Performance Monitoring:
    • সার্ভিসগুলির মধ্যে ট্রেসিং তথ্যের মাধ্যমে পারফরম্যান্স ইস্যু সনাক্ত করা যায়।
  3. Debugging and Troubleshooting:
    • যদি কোনও সার্ভিস কল ব্যর্থ হয়, ট্রেসিং তথ্য ব্যবহার করে সমস্যা দ্রুত সনাক্ত করা যায় এবং নির্ধারণ করা যায় কোথায় সমস্যা ঘটেছে।
  4. Observability:
    • পুরো সিস্টেমের উপর দৃশ্যমানতা এবং নিরীক্ষণ নিশ্চিত করে।

Conclusion

Spring Cloud Sleuth এবং Zipkin ইন্টিগ্রেশন আপনার মাইক্রোসার্ভিস আর্কিটেকচারের মধ্যে distributed tracing করার জন্য অত্যন্ত কার্যকর। এটি সার্ভিসগুলোকে একে অপরকে ট্রেস করতে এবং তাদের মধ্যে যোগাযোগ এবং কার্যকারিতা বিশ্লেষণ করতে সাহায্য করে। এই সমাধানটি সমস্যাগুলিকে দ্রুত সনাক্ত করতে এবং পারফরম্যান্স অপটিমাইজ করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By
Promotion

Are you sure to start over?

Loading...