Senkron Ve Asenkron Mesajlaşma (Synchronous and Asycnhronous Messaging)

Server Tombak
2 min readMay 7, 2023

--

Senkron ve Asenkron Mesajlaşma Hakkında:

Senkron ve asenkron mesajlaşmaya geçmeden önce, istek ve cevapların nasıl çalıştığını açıklamak istiyorum. Bir web sayfasına gittiğimizde yaptığımız işlem aslında bir istek göndermektir ve ekrana gelen veriler bu isteğe verilen cevaptır. Her isteğin çalışması threadler tarafından sağlanır. Yeni bir istek yapıldığında, havuzdaki boş bir thread çağrılır ve isteği gerçekleştirmek için kullanılır. Senkron ve asenkron yapılarda temel fark, istek-cevap işlemlerinde kullanılan bu threadlerin kullanımındadır.

Senkron Mesajlaşma (Synchronous Messaging):

Senkron mesajlaşmada gönderilen istek cevabı bekler, yani bir istek-cevap döngüsü vardır. Her istek, arka tarafta bir thread’in çalışmasına sebep olur. Senkron mesajlaşma, bu thread’in cevabın gelmesini bekleyip, gelen cevabın alınıp gönderilmesini sağlar. Bu yüzden, metotlarımızı oluştururken yapacağımız işlemde cevabın beklenmesi gerekiyorsa senkron yapı kullanılır.

Senkron yapıya örnek olarak doğrulama işlemlerini verebiliriz. Çünkü, thread’in bekletilmesi ve işlemlerin sırasıyla gerçekleşmesi gerekiyor. Örneğin, bir platforma giriş yaparken giriş bilgilerinin doğruluğunun kontrolü senkron yapıda yapılabilir. Çünkü bu bilgilerin doğruluğunun kontrol edilmesi ve sonra giriş işleminin gerçekleştirilmesi gerekiyor. Yani, sırayla gerçekleşmesi gereken işlemler var. Bu süreçte asenkron çalışmak, thread cevabı beklemeyeceği için cevap geldiğinde thread’in çağrılması durumunda başka bir işlemle meşgul olması kullanıcının bekletilmesine sebep olabilir. Sırayla gerçekleşmesi gereken işlemler için senkron yapı tercih edilmelidir, çünkü asenkron yapı işlemlerin sırayla yapılmasını sağlamaz ve bu durum önce gerçekleşmesi gereken bir işlemin daha sonra gerçekleşmesine sebep olabilir. Banka işlemleri gibi alanlarda bu durum sorun yaratabilir.

Asenkron Mesajlaşma (Asynchronous Messaging):

Asenkron mesajlaşmada gönderilen istekten sonra thread cevabı beklemek yerine thread havuzuna döner ve eğer sırada herhangi bir başka işlem varsa onu yapar. Cevap geldiğinde ise thread yeniden çağrılır ve cevabı döner. Yani asenkron yapıda istek yapıldığında cevap beklenmez, ancak senkron yapıda istek gönderildiğinde cevap beklenir.

Asenkron yapı kullanıldığında isteklerin cevaplarının sırası ve zamanlaması garantili değildir. Dolayısıyla, asenkron bir yapıda programlama yaparken zamanlama ile ilgili beklenmedik sonuçlar ortaya çıkabilir. Ancak yapılan işlem sıralı bir işlem değilse ve büyük verinin olduğu yapılan isteğin zaman alacağı işlemlerde asenkron yapı kullanmak daha uygun olabilir. Çünkü bu işlem gerçekleştirilirken thread’in işlemin gerçekleşmesini beklemek yerine, diğer işlemlerde kullanılıp daha sonra cevabın dönmesi için yeniden thread’in çağrılması daha doğru olacaktır. Bu sayede performanstan kazanç sağlanacaktır.

--

--

Server Tombak
Server Tombak

Written by Server Tombak

Software Engineer with a relentless passion for learning and sharing knowledge. Join me on my journey to explore the ever-evolving world of technology.

No responses yet