Genel Bakış
Amacı Nedir?
Amacı Nedir?
AMQP Mesaj Yayınlama
Yüksek Erişilebilirlik
Esnek Mesaj Formatı
Güvenli Mesajlaşma
Çalışma Prensibi
Çalışma Prensibi
Bağlantı Başlatma
Connection Pool Yönetimi
Kimlik Doğrulama
Veri İletişimi
Bağlantı Yönetimi
Hata Yönetimi
Kullanım Alanları
Kullanım Alanları
Log ve Audit
Event Tetikleme
Mikroservis Mesajlaşma
Yönetilen RabbitMQ Entegrasyonu
Teknik Özellikler ve Yetenekler
Temel Özellikler
Temel Özellikler
Çoklu Host/Port Tanımı
Sanal Host Yönetimi
AMQP Basic Properties Şablonu
Ortam Bazlı Yapılandırma
Enable/Disable Kontrolü
İleri Düzey Özellikler
İleri Düzey Özellikler
Authentication Toggle
SSL/TLS Protokol Seçimi
Heartbeat ve Channel Limitleri
Connection Test Özelliği
Export/Import Özelliği
Connection Monitoring
Connection Parametreleri
Zorunlu Parametreler
Zorunlu Parametreler
Name
Örnek Değer:
Production_RabbitMQNotlar: Boşlukla başlamaz, özel karakterler kullanılmamalı
Host/Port Listesi
Örnek Değer:
mq1.internal.local:5672Notlar: En az bir satır zorunlu; tüm satırlarda host ve port doldurulmalı
Connection Factory Virtual Host
Örnek Değer:
/apinizerNotlar: RabbitMQ yönetim konsolundaki vhost adıyla eşleşmeli
Connection Factory Connection Timeout
Örnek Değer:
60000Notlar: ms cinsinden; 0 değeri sınırsız bekleme anlamına gelir
Requested Channel Max
Örnek Değer:
2047Notlar: Broker limitini aşmamalı
Requested Frame Max
Örnek Değer:
0Notlar: 0 değeri broker varsayılanını kullanır
Requested Heartbeat
Örnek Değer:
60Notlar: Saniye cinsinden; 0 -> heartbeat devre dışı
Channel Routing Key
Örnek Değer:
apinizer.audit.queueNotlar: Queue adıyla aynı tutulması önerilir
Basic Properties AppId
Örnek Değer:
apinizerNotlar: API loglarında izlenebilir
Basic Properties ContentType
Örnek Değer:
application/jsonNotlar: application/xml vb. değerler desteklenir
Basic Properties ContentEncoding
Örnek Değer:
UTF-8Notlar: Broker ve tüketici aynı encoding’i kullanmalı
Basic Properties DeliveryMode
Örnek Değer:
2Notlar: Kalıcılık için 2 seçilmelidir
Basic Properties Priority
Örnek Değer:
5Notlar: Kuyruk önceliği etkin olmalıdır
Basic Properties ReplyTo
Örnek Değer:
apinizer.replyNotlar: Request/Reply desenlerinde zorunlu
Basic Properties Expiration
Örnek Değer:
60000Notlar: Kuyruk politikasını aşmamalı
Basic Properties Type
Örnek Değer:
apinizer-log-typeNotlar: Tüketicide filtreleme için kullanılır
Basic Properties UserId
Örnek Değer:
guestNotlar: Authentication etkinse broker doğrular
Basic Properties ClusterId
Örnek Değer:
cluster-eu-centralNotlar: Cluster izlenebilirlik raporlarında kullanılır
İsteğe Bağlı Parametreler
İsteğe Bağlı Parametreler
Description
Varsayılan Değer: -
Önerilen Değer: Süreç veya proje adını belirtin
Channel Exchange
Varsayılan Değer: ""
Önerilen Değer: apinizer.audit.exchange
Authentication Enabled
Varsayılan Değer: false
Önerilen Değer: Production ortamında true
Connection Factory Username
Varsayılan Değer: guest
Önerilen Değer: Ayrı bir servis hesabı kullanın
Connection Factory Password
Varsayılan Değer: guest
Önerilen Değer: Secret Manager üzerinden yönetilen güçlü parola
Connection Factory Use SSL Protocol
Varsayılan Değer: false
Önerilen Değer: Production’da true
Connection Factory SSL Protocol
Varsayılan Değer: TLSv1.2
Önerilen Değer: Broker desteğine göre TLSv1.3
Channel Exchange Binding
Varsayılan Değer: -
Önerilen Değer: Ortam bazlı tablo tutun
Timeout ve Connection Pool Parametreleri
Connection Timeout
Varsayılan: 60000 ms
Min: 1000 ms | Max: 300000 ms
Request Timeout
Varsayılan: 30000 ms
Min: 5000 ms | Max: 120000 ms
Pool Size
Varsayılan: 10
Min: 1 | Max: 100
Heartbeat Interval
Varsayılan: 60 saniye
Min: 0 | Max: 300 saniye
Kullanım Senaryoları
Log Streaming
Çözüm: channelRoutingKey=apinizer.logs, deliveryMode=2
Beklenen Sonuç: Tüm log mesajları kalıcı kuyrukta toplanır
Audit Trail
Çözüm: basicPropertiesType=audit, SSL aktif
Beklenen Sonuç: Güvenli audit mesajları tüketici servise ulaşır
Event Fan-out
Çözüm: channelExchange=apinizer.events, topic exchange
Beklenen Sonuç: Tüm aboneler routing key desenine göre mesaj alır
Failover Cluster
Çözüm: hostPortList’e en az 3 node ekleme
Beklenen Sonuç: Bağlantı otomatik olarak diğer node’a geçer
Uzun Kuyruk TTL
Çözüm: basicPropertiesExpiration=120000, priority düşürme
Beklenen Sonuç: Mesajlar 2 dakika sonra otomatik silinir
Düşük Gecikme İşleri
Çözüm: connectionFactoryRequestedHeartbeat=30, pool size=20
Beklenen Sonuç: Gecikme azalır, throughput artar
Connection Yapılandırma
Yeni RabbitMQ Bağlantısı Oluşturma

Oluşturma Sayfasına Gitme
Temel Bilgileri Girme
Production_RabbitMQ- Benzersiz isim girin, boşlukla başlamaz.
- Sistem otomatik kontrol eder. Yeşil tik: kullanılabilir. Kırmızı çarpı: mevcut isim.
- Maks. 1000 karakter.
- Connection’ın amacını açıklayın.
Environment (Ortam) Seçimi
Host ve Virtual Host Parametreleri
Kanal ve Mesaj Parametreleri
Timeout ve Connection Pool Ayarları
Güvenlik ve Authentication Ayarları
Test Connection
Kaydetme
- Connection listeye eklenir.
- Integration Flow ve Connector adımlarında kullanılabilir hale gelir.
-
Ortama göre aktif olur.
Connection başarıyla oluşturuldu! Artık Integration Flow ve Connector adımlarında kullanabilirsiniz.
Connection’ı Silme
Connection’ı silmek için:Yöntem 1: Liste Ekranından
- Connection listesinde satır sonundaki ⋮ menüsünden Delete seçeneğini tıklayın.
- Onay dialogunda silme işlemini onaylayın.
Silme İpuçları
- Integration Flow veya Connector adımlarında kullanılıyor olabilir.
- Gerekirse alternatif bir connection atayın.
- Silmeden önce Export ile yedek alın.
Alternatif: Deaktif Etme
- Silmek yerine connection’ın aktif durumunu pasif hale getirin.
- Connection pasif olur ancak silinmez.
- Gerektiğinde aktif hale getirerek yeniden kullanabilirsiniz.
Connection’ı Dışa/İçe Aktarma
Dışa Aktarma (Export)
Dışa Aktarma (Export)
Yöntem 1: Liste Ekranından
- Connection listesinde satır sonundaki ⋮ menüsünden Export seçeneğini tıklayın.
- ZIP dosyası otomatik olarak indirilir.
Dosya Formatı
{Date}-rabbitMq-integration-{ConnectionName}-export.zipÖrnek:
13 Nov 2025-rabbitMq-integration-Production_RabbitMQ-export.zipZIP İçeriği
- Connection JSON dosyası
- Metadata bilgileri
- Bağımlılık bilgileri (örneğin sertifikalar, key store)
Kullanım Alanları
- Yedekleme
- Ortamlar arası taşıma (Test → Prod)
- Versiyonlama
- Ekip veya proje bazlı paylaşım
İçe Aktarma (Import)
İçe Aktarma (Import)
İçe Aktarma Adımları
- Ana listede [Import RabbitMQ Bağlantısı] butonuna tıklayın.
- İndirilen ZIP dosyasını seçin.
- Sistem kontrolleri: Format geçerli mi? İsim çakışması var mı? Bağımlılıklar mevcut mu?
- Ardından [Import] butonuna tıklayın.
İçe Aktarma Senaryoları
Connection’ın Kullanım Alanları
Connection Oluşturma ve Aktif Etme
- Connection’ı oluşturun
- Test Connection ile bağlantıyı doğrulayın
- Save and Deploy ile kaydedin ve etkinleştirin
- Connection’ın Enabled durumda olduğundan emin olun.
Integration / Connector Adımlarında Kullanım
Scheduled Job Kullanımı
Test Amaçlı Kullanım
Best Practices
Yapılması Gerekenler ve En İyi Uygulamalar
Yapılması Gerekenler ve En İyi Uygulamalar
Cluster Ulaşılabilirliği
İyi: İki host eklemek
En İyi: Tüm broker nodelarını hostPortList’e ekleyip health check sonuçlarına göre sıralamak
Routing Key Yönetimi
İyi: Queue adını routing key olarak kullanmak
En İyi:
domain.context.event formatında isimlendirme yaparak bakım kolaylığı sağlamakMesaj TTL Stratejisi
İyi: Varsayılan 60 saniye tanımlamak
En İyi: İş gereksinimine göre ortam bazlı TTL setleri oluşturmak
Authentication Stratejisi
guest/guest kimlik bilgilerini tüm ortamlarda kullanmakİyi: Production için farklı kullanıcı oluşturmak
En İyi: Sadece gerekli izinlere sahip servis hesapları ve secret rotation politikası uygulamak
Ortam Yönetimi
İyi: Her ortam için ayrı connection oluşturmak
En İyi: Environment seçeneğini kullanarak tek connection’da tüm ortamları yönetmek, ortamlar arası geçişte sadece environment değiştirmek
Connection Test
İyi: Kaydetmeden önce Test Connection ile doğrulamak
En İyi: Her parametre değişikliğinden sonra test etmek, production’a geçmeden önce test ortamında tam entegrasyon testi yapmak
Güvenlik En İyi Uygulamaları
Güvenlik En İyi Uygulamaları
RabbitMQ Kullanıcı Yetkileri
AMQP Sertifika Yönetimi
Audit ve Loglama
Kimlik Bilgileri Yönetimi
SSL/TLS Kullanımı
Erişim Kontrolü
Kaçınılması Gerekenler
Kaçınılması Gerekenler
Tek Kuyruğa Aşırı Yükleme
Alternatif: Mesaj tipine göre farklı routing key tanımlayın
Heartbeat'i 0 Yapmak
Alternatif: En az 30 saniyelik heartbeat kullanın
SSL Sertifikasını Paylaşmak
Alternatif: Her ortam için ayrı sertifika/credential kullanın
Production Connection'ı Test Ortamında Kullanma
Alternatif: Her ortam için ayrı connection oluşturun, environment parametresini kullanın, connection isimlerini ortama göre prefix ekleyerek ayırın (Test_, Prod_)
Çok Düşük Timeout Değerleri
Alternatif: Gerçek kullanım senaryolarına göre timeout değerlerini ayarlayın, network latency’yi ölçün ve timeout’ları buna göre belirleyin
Connection Pool Kullanmama
Alternatif: Connection pool aktif edin, pool size’ı trafik hacmine göre ayarlayın, pool monitoring kurun
Performans İpuçları
Performans İpuçları
Mesaj Boyutu Yönetimi
Etki: FrameMax sınırına takılma riski azalır, throughput artar
Routing Key Şablonları
service.region.event kalıbı kullanınEtki: Tüketiciler pattern ile kolay filtreleme yapar, subscription sayısı düşer
Heartbeat Ayarı
Etki: Kopmalar hızlı tespit edilir, gereksiz reconnect önlenir
Connection Pool Optimizasyonu
Etki: Bağlantı açma maliyeti %80 azalır, yanıt süreleri düşer, kaynak kullanımı optimize edilir
Timeout Değerleri Optimizasyonu
Etki: Gereksiz beklemeler önlenir, hızlı fail-over sağlanır, kullanıcı deneyimi iyileşir
Connection Monitoring
Etki: Sorunlar proaktif tespit edilir, performans darboğazları erken belirlenir, kesinti süresi azalır
Sorun Giderme (Troubleshooting)
Message Rejected by Broker
Message Rejected by Broker
Exchange/Queue Binding
Routing Key Test
Kullanıcı İzinleri
SSL Handshake Failure
SSL Handshake Failure
TLS Sürümü
Sertifika Yükleme
CA İmzalı Sertifika
Connection Timeout
Connection Timeout
Network Kontrolü
Sistem Sağlığı
Timeout Ayarları
Log İnceleme
Authentication Failed
Authentication Failed
Kimlik Bilgileri
Kullanıcı Durumu
Yetki Kontrolü
Sertifika Kontrolü
Pool Exhausted
Pool Exhausted
Pool Size
Connection Kontrolü
Idle Timeout
Metrik İzleme
Connection Test Başarılı Ama Entegrasyon Akışı Hata Veriyor
Connection Test Başarılı Ama Entegrasyon Akışı Hata Veriyor
Enable Toggle
Connection Seçimi
Connection Deploy
Flow/Job Deploy
Log Kontrolü
Sık Sorulan Sorular (SSS)
Aynı RabbitMQ Bağlantısı ile hem log hem de iş verisi gönderebilir miyim?
Aynı RabbitMQ Bağlantısı ile hem log hem de iş verisi gönderebilir miyim?
Host listesinde IP yerine DNS kullanmak zorunda mıyım?
Host listesinde IP yerine DNS kullanmak zorunda mıyım?
Heartbeat değerini nasıl seçmeliyim?
Heartbeat değerini nasıl seçmeliyim?
TLSv1.3 destekleniyor mu?
TLSv1.3 destekleniyor mu?
TLSv1.3 yazabilirsiniz.Mesaj TTL'ini ortam bazlı farklılaştırabilir miyim?
Mesaj TTL'ini ortam bazlı farklılaştırabilir miyim?
Aynı connection'ı birden fazla Integration Flow'da kullanabilir miyim?
Aynı connection'ı birden fazla Integration Flow'da kullanabilir miyim?
Connection pool kullanmak zorunlu mudur?
Connection pool kullanmak zorunlu mudur?
Test ve Production için farklı connection'lar mı oluşturmalıyım?
Test ve Production için farklı connection'lar mı oluşturmalıyım?
Test Connection başarılı ama Integration Flow'da çalışmıyor, neden?
Test Connection başarılı ama Integration Flow'da çalışmıyor, neden?
- Connection enable toggle’ı pasif olabilir
- Integration adımında farklı bir connection seçili olabilir
- Connection deploy edilmemiş olabilir
- Integration Flow henüz redeploy edilmemiş olabilir

