Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

CodeIgniter ve yoğun loglama


Kojiroh

Öne çıkan mesajlar

Bi süredir bi site yapmaktayım, site bi REST API'si sağlıyo olacak ve her şey yolunda giderse bu API mobil uygulamalar tarafından yoğun bi şekilde kullanılıyo olacak (bi harita olduğunu ve haritanın kaydırıldıkça request gittiğini düşünün).

Kullanıcılar ne yapmış ne etmiş bunları takip edip istatistik tutmak amacıyla (kişisel bilgi tutmuyoz sdf) API'ye yapılan her request'i ve buna karşı alınan kararı ve sonucunu loglamak istiyorum. Yalnız dediğim gibi, yoğun kullanım beklediğim için bu loglama işleminin uygulamayı bekletmemesi gerek, yani DB'ye direkt olarak kayıt atmak istemiyorum. Kaldı ki bu kadar yoğun data içn artık NoSQL hakkın yolu oldu.

Ben bunun için aklımda şöyle bi yapı kurdum ama zamanında böyle bi şeyler denemiş etmiş birileri varsa onların fikirlerini ve tecrübelerini alayım istedim sdf
- Bütün bu loglar MongoDB'de saklanır
- Loglama işlemini Node.JS'te yazılmış bi server halleder
- CI/PHP tarafı API'ye gelen her isteğe karşılık bu Node.JS server'ına pipe ya da curl atar şu datayı kaydet diye
- Aynı anlarda binlerce disk write yapıp sunucuyu da çok fazla yormamak adına Node.JS loglama serverında queue mekanizması çalışır, benim belirlediğim aralıklarda queue'yu db'ye kaydeder

Çok mu abartıyorum acaba? Bi de genelde "önce yaz sonra kasarsın performansa" yaklaşımını öneriyo aslında insanlar etrafta, daha sonra mı gireyim acaba bu işe?
Link to comment
Sosyal ağlarda paylaş

Önce yaz sonra performansa bakarsın mantığı çok saçma geliyor bana ya. İlk başta adam akıllı yazmak varken neden sonradan kasayım kendimi.

Abartmışsın sanki biraz. Anladığım kadarıyla sistem logu kaydetmek için;

CI -> NodeJS -> MongoDB

Olarak düşünmüşsün ancak CI'den NodeJS'ye requesti gönderirken (al lan şunları kaydet) dediğinde ve NodeJS bunları bekletip bekletip Mongo'ya atarken daha yavaş olabilir.

Direk NodeJS'yi çıkarıp CI -> Mongo yapsan daha mantıklı olmaz mı?

Yada mantığı s.ktir et. Bunun benchmarkını yapmak gerek adam akıllı. Performans testi yapmadan kesin emin olamayabilirsin bence aklında kalır

CI'den NodeJS'ye göndereceğin pipe yada curl request'i, CI'den maongoya göndereceğin requestden uzun sürmesi ihtimali oluşuyor kafamda zira
Link to comment
Sosyal ağlarda paylaş

İşte ben de en son bütün interfaceleri hazırladım, bi CI'dan Node.JS'e gitme kaldı. Şimdi bütün bottleneck orda, ki dediğin gibi belki daha da yavaşlatabilir olayı ya. Çünkü curl olsa PHP'de asenkron curl yok, pipe olsa aynı anda binlerce process açıp kapama durumunda kalıcam falan, en iyisi onun performans testini yapıp devam etmek. Proje bitmeye yüz tutunca çıkarırım onu da aradan artık.
Link to comment
Sosyal ağlarda paylaş

Gelen request'i baska bir yere pipe edip unutmak mantikli gibi gelse de kontrolu kaybedecegin nokta olur bence. Performans ile kiyaslandiginda gereksiz bir secim olur gibi dusunuyorum zira tek yapacagin input'u ve kimin nasil istedigini kaydetmek olacak.

Ha proje cok buyurse ne olur dersen seceneklerin sirayla; optimizasyon, kaynak arttirimi, projenin nodeJS/Go gibi daha efektif platformlarda tekrar kodlanmasi olmali bence zira ram, hat, islemci olayi eskisi gibi sorunlu ve pahali degil.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...