Modern ticaret platformlarında Sipariş API'si sadece bir mikroservis değil—kullanıcı niyetini piyasa uygulamasınıyla bağlayan merkezi sinir sistemidir. Bir tüccar alış veya satış siparişi gönderdiğinde, bu bileşen her detayı doğrular, talebi borsaya yönlendirir ve sonucu tüm sisteme yayınlar.
Brezilya'nın B3 borsası için bir komisyonculuk platformu inşa etme serimizde fiyat senkronizasyonu, eşleştirme motoru, finansal emanet ve varlık katalogları gibi bireysel bileşenler geliştirdik. Şimdi her şeyi bir araya getiren kritik servise odaklanıyoruz: Komisyoncu Sipariş API'si.
Sipariş API'si Ne Yapar?
trading-broker-order servisi tüm ticaret faaliyetleri için tek giriş noktasıdır. Birincil sorumluluğu, siparişin ilk gönderiminden nihai uygulama onayına kadar olan yaşam döngüsünü yönetmektir. Bu, kullanıcı uygunluğunu doğrulama, varlık kullanılabilirliğini kontrol etme, siparişleri B3 eşleştirme motoruna yönlendirme ve tüm alt sistemleri durum değişikliklerinden haberdar etmeyi içerir.
Bunu başarmak için servis dört ana bileşenle entegre olur:
- Varlık API'si (REST/Feign) – Ticker'ın var olduğunu ve işlem yapılabilir olduğunu doğrular
- Cüzdan API'si (REST/Feign) – Kullanıcının yeterli bakiyeye sahip olduğunu doğrular
- B3 Eşleştirme Motoru (RabbitMQ) – Siparişleri uygulama için iletir
- Komisyoncu Cüzdanı (Kafka) – Yaşam döngüsü olaylarını ekosisteme yayınlar
Uçtan Uca Sipariş Akışı Açıklaması
Tipik bir siparişin sistemden nasıl geçtiği aşağıda açıklanmıştır:
- Bir kullanıcı
/api/v1/ordersadresine kullanıcı kimliği, ticker, miktar ve taraf (ALIŞ/SATIŞ) gibi detaylarla POST isteği gönderir - Sipariş API'si:
- Varlık API'si üzerinden ticker'ı doğrular
- Cüzdan API'si üzerinden bakiyeyi kontrol eder
- Siparişi MySQL'de
BEKLEMEDEdurumuyla kalıcı hale getirir - Siparişi B3 uygulamasını için RabbitMQ'ya yayınlar
- Sistemi Kafka
order-events-v1olayıyla bilgilendirir
- B3'nin eşleştirme motoru siparişi işler ve RabbitMQ üzerinden bir durum (
DOLDURULDUveyaREDDEDİLDİ) döndürür - Sipariş API'si:
- Sipariş durumunu MySQL'de günceller
- Nihai Kafka olayını yayınlar
- Cüzdan servisi fonları bloke ederek, likide ederek veya tersine çevirerek tepki verir
Bu tasarım, doğrulama için senkron REST çağrıları ve olay yayılımı için asenkron RabbitMQ/Kafka olmak üzere iki farklı mesajlaşma modeli kullanır.
Uygulama için Teknoloji Yığını
Sipariş API'si modern Java ve Spring teknolojilerinden yararlanır:
- Java 21 + Spring Boot 3.3.5 – Çekirdek çalışma zamanı ve framework
- MySQL + Flyway – Şema göçüyle kalıcı depolama
- Spring Kafka – Yaşam döngüsü olay yayınlama
- Spring AMQP – Sipariş yönlendirme için RabbitMQ entegrasyonu
- Spring Cloud OpenFeign – Varlık ve Cüzdan API'leri için REST istemcisi
- SpringDoc OpenAPI – Etkileşimli Swagger dokümantasyonu
Temel Uygulama Prensipleri
1. Alan Modeli: Sipariş Varlığı
Sipariş sınıfı, yaşam döngüsünün herhangi bir noktasında bir ticaret siparişinin durumunu modeller:
@Entity
@Table(name = "orders")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String userId;
private String ticker;
@Column(nullable = false, precision = 19, scale = 4)
private BigDecimal quantity;
@Column(nullable = false, precision = 19, scaleYapay zeka özeti
Erfahren Sie, wie Sie eine robuste Order-API für Handelsplattformen mit Java, Spring Boot und asynchroner Kommunikation entwickeln. Optimieren Sie Order-Lebenszyklen und steigern Sie die Effizienz.
Etiketler