প্রথম Spring Cloud প্রজেক্ট তৈরি করা (Hello Spring Cloud Example)

Spring Cloud Setup এবং কনফিগারেশন - স্প্রিং ক্লাউড (Spring Cloud) - Java Technologies

248

Spring Cloud এর মাধ্যমে একটি প্রাথমিক প্রজেক্ট তৈরি করা বেশ সহজ এবং এটি মাইক্রোসার্ভিস আর্কিটেকচারের জন্য একটি ভাল পয়েন্ট শুরু। এখানে একটি সহজ Hello Spring Cloud Example তৈরি করার পদ্ধতি আলোচনা করা হবে যেখানে আমরা একটি Spring Cloud Config Server, একটি Client Service এবং Eureka Server তৈরি করব।

এই উদাহরণটি শুরুতে একটি Spring Cloud Config Server তৈরি করবে, যা সেন্ট্রাল কনফিগারেশন ম্যানেজমেন্ট সরবরাহ করবে এবং Eureka সার্ভিস ডিসকভারি সিস্টেম ব্যবহার করবে, যা সার্ভিসগুলিকে রেজিস্টার এবং ডিসকভার করতে সাহায্য করবে।


১. Spring Cloud Config Server তৈরি করা

Config Server একটি সেন্ট্রাল কনফিগারেশন সার্ভিস যা মাইক্রোসার্ভিসগুলোকে সেন্ট্রাল কনফিগারেশন প্রদান করে। এখানে আমরা Spring Cloud Config Server তৈরি করব।

১.১. Maven Dependency যোগ করুন

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

১.২. @EnableConfigServer এনোটেশন যোগ করুন

Config Server ক্লাসে @EnableConfigServer ব্যবহার করে Config Server সক্রিয় করুন।

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

১.৩. application.yml কনফিগারেশন

Config Server এর কনফিগারেশন ফাইলটি এভাবে তৈরি করুন:

server:
  port: 8888

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/your-username/config-repo # এখানে আপনার Git repository URL দিন

এখানে আমরা Git repository ব্যবহার করে কনফিগারেশন ফাইল সংগ্রহ করব।


২. Eureka Server তৈরি করা

Eureka Server হল একটি Service Discovery সার্ভিস যা সমস্ত মাইক্রোসার্ভিসকে রেজিস্টার করতে সহায়ক।

২.১. Maven Dependency যোগ করুন

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

২.২. @EnableEurekaServer এনোটেশন যোগ করুন

Eureka Server ক্লাসে @EnableEurekaServer এনোটেশন যোগ করুন:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}

২.৩. application.yml কনফিগারেশন

Eureka Server-এর কনফিগারেশন ফাইল:

server:
  port: 8761

eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
  server:
    enableSelfPreservation: false

এখানে 8761 পোর্টে Eureka Server চলবে এবং এটি self-preservation মোড বন্ধ করবে, যাতে সার্ভিসটি সঠিকভাবে কাজ করতে পারে।


৩. Client Service তৈরি করা

এটি একটি সাধারণ Spring Boot অ্যাপ্লিকেশন হবে, যা Eureka Server-এ রেজিস্টার করবে এবং Config Server থেকে কনফিগারেশন পাবে।

৩.১. Maven Dependency যোগ করুন

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

৩.২. @EnableEurekaClient এনোটেশন যোগ করুন

Client Service ক্লাসে @EnableEurekaClient এনোটেশন যোগ করুন:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class ClientServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(ClientServiceApplication.class, args);
    }
}

৩.৩. application.yml কনফিগারেশন

Client Service এর কনফিগারেশন ফাইল:

spring:
  application:
    name: client-service
  cloud:
    config:
      uri: http://localhost:8888
    discovery:
      enabled: true
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/

এখানে, Config Server থেকে কনফিগারেশন ফাইল এবং Eureka Server থেকে সার্ভিস ডিসকভারি কনফিগার করা হয়েছে।

৩.৪. Sample Controller

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

@RestController
public class ClientController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello from Client Service!";
    }
}

৪. Application Properties (Git Repository for Config Server)

যেহেতু আমরা Git রিপোজিটরি ব্যবহার করেছি Config Server এর কনফিগারেশন জন্য, Config Server দ্বারা ব্যবহৃত কনফিগারেশন ফাইলগুলি Git repository তে থাকতে হবে। সেগুলির একটি উদাহরণ হতে পারে:

# application.properties or application.yml
message=Hello from Config Server!

৫. Spring Cloud প্রজেক্ট চালানো

  1. প্রথমে Eureka Server চালু করুন:

    mvn spring-boot:run -Dspring-boot.run.profiles=eureka
    

    এটি আপনার http://localhost:8761 URL-এ Eureka Dashboard উপলব্ধ করবে।

  2. তারপর Config Server চালু করুন:

    mvn spring-boot:run -Dspring-boot.run.profiles=config-server
    

    এটি আপনার http://localhost:8888 URL-এ কনফিগারেশন সার্ভার উপলব্ধ করবে।

  3. তারপর Client Service চালু করুন:

    mvn spring-boot:run -Dspring-boot.run.profiles=client-service
    

    Client Service সার্ভিসটি http://localhost:8080/hello এ উপলব্ধ হবে এবং Hello from Client Service! বার্তা রিটার্ন করবে।


Conclusion

এভাবে আপনি একটি Spring Cloud প্রজেক্ট তৈরি করতে পারেন যেখানে:

  • Config Server মাইক্রোসার্ভিসগুলোর কনফিগারেশন সেন্ট্রালভাবে পরিচালনা করবে।
  • Eureka Server সার্ভিস ডিসকভারি প্রদান করবে।
  • Client Service Config Server থেকে কনফিগারেশন পাবার জন্য কানেক্ট হবে এবং Eureka Server-এ রেজিস্টার হবে।

এই প্রজেক্টে Spring Cloud এর মূল উপাদানগুলি ব্যবহার করা হয়েছে এবং এটি একটি সাধারণ Hello Spring Cloud Example হিসেবে কাজ করবে।

Content added By
Promotion

Are you sure to start over?

Loading...