Spring Boot ile Mikroservis Mimarisi

Master Spring Ter
2 min readJun 14, 2024

Mikroservis Mimarisi Nedir?

Mikroservis mimarisi, büyük ve karmaşık uygulamaları küçük, bağımsız ve işlevsel hizmetlere (servis) bölerek geliştirme yaklaşımıdır. Her mikroservis, belirli bir işlevi yerine getirir ve diğer mikroservislerle haberleşir. Bu mimari, geliştirme, test, dağıtım ve bakım süreçlerini kolaylaştırır.

Spring Boot ile Mikroservisler Oluşturma

Spring Boot, mikroservis mimarisine uygun uygulamalar geliştirmek için idealdir. İşte bir mikroservis oluşturma adımları:

1. Proje Oluşturma

Spring Initializr’ı kullanarak mikroservis projesi oluşturun:

  • Project: Maven Project
  • Language: Java
  • Spring Boot: 3.3.0 (veya en son sürüm)
  • Dependencies: Spring Web, Spring Boot DevTools, Spring Data JPA, H2 Database (veya tercih ettiğiniz veritabanı)

2. Mikroservis Yapısı

Mikroservisler genellikle aşağıdaki yapıya sahiptir:

src/main/java/com/example/orderservice
|-- OrderServiceApplication.java
|-- controller
|-- OrderController.java
|-- service
|-- OrderService.java
|-- model
|-- Order.java
|-- repository
|-- OrderRepository.java

3. Model Sınıfı Oluşturma

src/main/java/com/example/orderservice/model/Order.java dosyasını oluşturun:

package com.example.orderservice.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Order {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String product;
private int quantity;
private double price;

// Getters and Setters
}

4. Repository Arayüzü

src/main/java/com/example/orderservice/repository/OrderRepository.java dosyasını oluşturun:

package com.example.orderservice.repository;

import com.example.orderservice.model.Order;
import org.springframework.data.jpa.repository.JpaRepository;

public interface OrderRepository extends JpaRepository<Order, Long> {
}

5. Servis Katmanı

src/main/java/com/example/orderservice/service/OrderService.java dosyasını oluşturun:

package com.example.orderservice.service;

import com.example.orderservice.model.Order;
import com.example.orderservice.repository.OrderRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class OrderService {

@Autowired
private OrderRepository orderRepository;

public List<Order> getAllOrders() {
return orderRepository.findAll();
}

public Order getOrderById(Long id) {
return orderRepository.findById(id).orElse(null);
}

public Order saveOrder(Order order) {
return orderRepository.save(order);
}

public void deleteOrder(Long id) {
orderRepository.deleteById(id);
}
}

6. Controller Katmanı

src/main/java/com/example/orderservice/controller/OrderController.java dosyasını oluşturun:

package com.example.orderservice.controller;

import com.example.orderservice.model.Order;
import com.example.orderservice.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/orders")
public class OrderController {

@Autowired
private OrderService orderService;

@GetMapping
public List<Order> getAllOrders() {
return orderService.getAllOrders();
}

@GetMapping("/{id}")
public Order getOrderById(@PathVariable Long id) {
return orderService.getOrderById(id);
}

@PostMapping
public Order createOrder(@RequestBody Order order) {
return orderService.saveOrder(order);
}

@DeleteMapping("/{id}")
public void deleteOrder(@PathVariable Long id) {
orderService.deleteOrder(id);
}
}

7. Ana Uygulama Sınıfı

src/main/java/com/example/orderservice/OrderServiceApplication.java dosyasını oluşturun:

package com.example.orderservice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class OrderServiceApplication {

public static void main(String[] args) {
SpringApplication.run(OrderServiceApplication.class, args);
}
}

8. Uygulamayı Çalıştırma

Projeyi çalıştırarak veya terminalden mvn spring-boot:run komutunu kullanarak mikroservis uygulamanızı başlatın. Tarayıcınızı açın ve http://localhost:8080/orders adresine giderek mikroservis endpoint'lerinizi test edin.

Sonuç

Bu makalede, Spring Boot kullanarak basit bir mikroservis nasıl oluşturulacağını öğrendiniz. Mikroservislerinizi Docker ile konteynerleştirerek, Kubernetes ile orkestrasyon yaparak ve çeşitli izleme araçları ile gözlemleyerek daha da ileri seviyeye taşıyabilirsiniz. Bir sonraki yazımızda bu konuları inceleyeceğiz.

Yazan: https://chatgpt.com/g/g-dHq8Bxx92-master-spring-ter

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Master Spring Ter
Master Spring Ter

Written by Master Spring Ter

https://chatgpt.com/g/g-dHq8Bxx92-master-spring-ter Specialized ChatGPT expert in Spring Boot, offering insights and guidance for developers.

No responses yet

Write a response