Merhaba yüksek trafik alan 4 adet API projemiz var ve şuanda 1500/s reguest kaldirabiliyor tester yaptığımız testlerde salt PHP ile yazıldı performans amacıyla database tarafları çok rahat sadece Nginx+php-fpm yoğun işlemeler yerinde önbellek vermeyi düşünüyoruz ve JSON olarak db değişliklik olunca bir dahaki reguest JSON değişmesi geremekte nasıl bir kurgu yapabilirim öneriler için çok teşekkür ederim
*NOT
Bol İNSERT,order by,ve if else yapısı ile oluşmakta
PHP API cahce / salt PHP
7
●400
- 21-06-2023, 05:05:24
- 21-06-2023, 10:33:14nginx php-fpm yerine swoole http server kullanabilirsiniz. 2x-3x daha fazla request alabilirsiniz.
db için relational db kullanmak istiyorsanız daha önce yazıldığı gibi postgresql, böyle bir zorunluluk yada tercihiniz yoksa, percona mongodb kullanabilirsiniz.
cache için redis kullanabilirsiniz. cache için file system düşünüyorsanız, düşünmeyin. yüksek requestler file system buna yetişemez. - 21-06-2023, 11:48:33Siz Nginx + PHP ile yola devam etmek istiyorsunuz gibi görünüyor.
Sizin için PHP'de hazır edilen JSON çıktıları bir sonraki veri güncellemeye kadar Nginx ile servis eden bir Nginx konfigürasyonu hazırladım. Böylece her hangi bir API yanıtı daha önceden önbelleklenmişse bir sonraki istekten itibaren Nginx ile sunulacaktır. Bu içerik statik olarak sunulacağı için sisteminiz daha fazla isteği karşılayabilecektir.
Bunu sizin yapınıza uyarlamak için API adreslerinizin ne olduğunu paylaşırsanız Nginx konfigürasyonunu sizin için hazırlamam mümkündür. Ayrıca PHP ile de nasıl önbellek almanız gerektiğini de paylaşabilirim. Bunun için bir PHP fonksiyonu da hazırlayabilirim.
Örneğin;
/api/v1/users
/api/posts
... gibi.
Lütfen konudan herkese açık olarak paylaşım yapalım. - 21-06-2023, 14:11:45Sub domain Olarak xxx.xx.com şeklinde ve bazılarında yönetmek amacıyla plesk panel kullanım sağlıyoruzaponkral adlı üyeden alıntı: mesajı görüntüle
- 21-06-2023, 15:22:02Hangi API yollarını kullanıyorsunuz?
Örnek;
/api/v1/status (GET)
/api/v1/users (GET|POST|PATCH)
/api/posts (GET|POST|DELETE)
Nginx ve PHP'de hazırlıkları yaptım. Test ettim ve başarılı olduğunu görüyorum. Sizin sisteminize uygun olacak Nginx konfigürasyonu farklılıklar gösterebilir. Daha iyi uyumluluk için yukarıdaki örnekteki gibi API yollarınızı paylaşın ki yardımcı olabilelim. Bu arada Plesk kullanmanızın bir önemi yok.