Önce soracağım mevzunun çıkış noktası
- php ile kodlanmış bir restful api yapısı var.
- bu api yapısı, ip kısıtlaması ile sadece yetki verilen başka sunucular üzerinden gelen taleplere cevap veriyor.
- talep gönderen sunucu ip'si filtreyi geçebiliyorsa bu sefer başka authentication filtreleri devreye girip talep işleniyor ve cevap veriliyor.
- gelen talepler farklı farklı sitelerden de olsa hepsi tek bir veri havuzu üzerinden hem genel data hemde sadece kendi scope'una lazım olan data'yı çekiyor
işlemler biraz karışık olsa da aslında api'nin yaptığı temel şey veritabanından datayı çekip json olarak basmak.
bu yapı şuan için hali hazırda çalışıyor.
ee derdin ne dostum derseniz şöyle bir durum var; mevcut data'nın bir kısmı üzerinde tüm sitelerin işlem yapma hakkı var.
anlaşılması için en basitinden örneklersem bu datayı bir x ve y olarak düşünün. x makale okunma sayısı ve y de toplam makale sayısı olsun. x makalesine her talep geldiğinde mantıken okunma sayısı 1 artar. her yeni eklenen makaleden sonra da y adedi artar.
x sayısı için sorun yok adam sayfayı açtığında datayı çekip sayfaya basıyoruz. başka sitelerden görüntüleme gelmiş ve x sayısı artmış önemli değil ziyaretçi bunu görmesede olur ama sitelerde birde jquery ile long pooling yapan bir kısım var. o da 30 saniyede bir api üzerinden sürekli makale sayısı y'nin durumunu sorup duruyor.
hesabı en düşüğünden yapayım 50 site olsa her sitede anlık 5 kişi olsa ilk anda 250 sorgu, bunlar sayfayı açık bıraksalar ve ilerleyen dakikalarda yeni ziyaretçiler gelmeye devam etse long pooling sayesinde oluşacak trafiği siz düşünün.
şimdilik tekleyen yada sıkıntı çıkartan bir taraf yok. darboğaza girmeden önce kafa rahatken hem yeni birşeyler öğrenip hemde çıkması muhtemel sorunu çözecek neler yapabilirim diye düşünüyorum.
bu konuda ilk aklıma gelen api kısmını nodejs'ye çevirmek oldu. daha önceden merak ederek her yerde bahsi geçen basit haliyle chat zımbırtılarını denemiştim ama vakit bulupta geliştirecek birşeyler yapmadım.
whatsapp'ın sunumlarından birinde erlang'ı anlata anlata bitiremediklerini gördüm.
bazı kaynaklarda nodejs ile erlang'ı kıyaslamaya bile sokmayın, biri elma diğeri armut gibi diye baya celallenen insanlar var.
keza scala ve frameworklerini övenlerde var.
backend kısım için non-blocking bir yapı kursak, hem güvenlikli olsa hem sunucuyu şişirmese, hem de güncelleme olduğunda bunu tarayıcılara push etse
bu dillerle uğraşıp kolaylığını yada zorluğunu yaşamış tecrübesi olan birisi ne tavsiye eder yada bunların bir birlerine üstünlüğü yada eksikleri nelerdir
değerlendirme olmaz ise gönlüm erlang'dan yana olsa da nodejs ile işe girişicem sanırım.