lostyazilim

Php ve Sunucu ile Alakalı?

34 Mesajlar 4.831 Okunma
lstbozum
wmaraci reklam

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
SancarSaran

Verdiğiniz fikirin tek yol olduğunu düşünüyosanız sizin bu işlerden pek bilginiz yok demektir. Nezaketen kırmamaya çalışıyorum ama anlamakta güçlük çekiyorsunuz. Instagram, facebook, twitter anlık olarak binlerce veri girişi oluyor nasıl bu siteler bir takılma yaşamıyorsa bizde bunların %25lik kısmı gibi olmak istiyoruz. Eminim bahsettiğiniz yolu kullanmıyorlar. Çünkü anlık iş ile sıralı iş sistemini karıştırıyorsunuz. Yinede teşekkür ederim hocam kalp kırmaya gerek yok.

xsafa

Dönüş yaptım hocam
 

 

wmaraci
reklam

xsafa xsafa Developer Kullanıcı
  • Üyelik 01.08.2016
  • Yaş/Cinsiyet 24 / E
  • Meslek Bilgisayar Müh. Öğr.
  • Konum Erzurum
  • Ad Soyad S** Y**
  • Mesajlar 1534
  • Beğeniler 1234 / 463
  • Ticaret 19, (%100)
Wp numaramı yolladım pm den.
 

 

Yazılım işleriniz için -> contact@safayasar.com

SancarSaran SancarSaran WM Aracı Kullanıcı
  • Üyelik 14.01.2018
  • Yaş/Cinsiyet 52 / E
  • Meslek Programcı
  • Konum İzmir
  • Ad Soyad S** S**
  • Mesajlar 319
  • Beğeniler 4 / 111
  • Ticaret 0, (%0)

edcsmile adlı üyeden alıntı

SancarSaran

Verdiğiniz fikirin tek yol olduğunu düşünüyosanız sizin bu işlerden pek bilginiz yok demektir....


iş sırası mantığı nedir, kitleme nasıl yapılır hadi geçtim bunlar senin için iki boy büyük mevzular, bari verilen cevabı düzgün oku.

Ne diyor mesajda bir veya daha fazla.

Gelen işleri bir yere kaydetmez isen, yükü nasıl dağıtacaksın. Hangi işin kaçıncı sırada olduğu, hangi işin yapılmakta olduğunu ve bittiğini nasıl bileceksin. Var sayalım işin yarısında bot patladı, veya bir sorun çıktı, kalan işi nasıl devam ettireceksin ?

Oturup, statik bir dille (c, java, golang vb) daemon yazarım, multi thread kod yazarım, main loopta dönerken cpu yükünü kontrol ederim, ona göre sub routine açar kaparım desen dahi hiç fark etmez, özünde yapacağın aynı şeydir.

O bahsettiğin uçan kaçan sitelerde aynı model üzerinden farklı yorum yapıyordur sadece.

Bu gün program yazarken karşılaştığınız sorunların tanımları ve çözümleri bundan 30 40 sene önce yazıldı çizildi. Siz farklı yerlerde farklı yorumlar yapabilirsiniz sadece.

Verdiğim cevap tek yol.

Yani yük altında dağılmayacak, bilgisi senin kadar olan bir arkadaş tarafından yazılabilecek model bu.

Veya bak arkadaşın ekmeğine mani olmayalım, parası ile yazarmış...
wild

kişi bu mesajı beğendi.

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
SancarSaran

Hocam belli ki canınız sıkılmış takılmaya yer arıyosunuz boş vaktiniz varsa gelin beraber oturalım kafa patlatalım fikir fikirden üstün demişler ben sadece "şu" şekilde olsun istiyorum diyorum siz mi yanlış anlıyosunuz ben mi anlatamıyorum anlamadım ki..

Size diyorum ki "sıralı sistem" yapmayacağım. İstediğim "sadece" "anlık olarak 50bin tane sorguyu aynı anda kaldırabilecek bir sistem" bu kadar. Hani bunda ne uzatılcak bir konu var ne başka bir şey. "Sıralı" veya çalışırken arka planda "kaydeden" bir sistem istemiyorum. Bot yarıda kesilsin sorun değil o sonra ki mevzu.

Ben sadece ;
50 Bin tane sorguyu aynı anda çalıştırıcam sunucu patlamıcak istediğim sadece bu hocam gözünüzü seviyim cidden şu konuşmalar hiç hoşlanmadığım şeyler size-bize ayıp
 

 

wmaraci
wmaraci

SancarSaran SancarSaran WM Aracı Kullanıcı
  • Üyelik 14.01.2018
  • Yaş/Cinsiyet 52 / E
  • Meslek Programcı
  • Konum İzmir
  • Ad Soyad S** S**
  • Mesajlar 319
  • Beğeniler 4 / 111
  • Ticaret 0, (%0)
Anlamadığın kısım ne yaparsan yap, yine dönüp geleceğin nokta burası. Bilgisayarda hiç bir şey ayn anda olmaz, hepsi bir birine bağlı bir zamanlayıcı ile çalışır. CPU da vardır scheduler, hangi işin hangi çekirdeğe gideceğine bakar, OS ta vardır. Sql sunucuda vardır, http sunucuda vardır.

Yemek ateşte pişer, amma ocak, amma fırın, amma mangal. İllaki ateşte pişer.

Gelelim senin derdine.

Öyle kafadan sallama rakamlar kasarken, tcp portu nedir bir makina da kaç tane bulunur diye oturup düşünmen lazım.

Gelip buraya sallamadan önce git sunucunda bash üstünden 50000 request at bakalım ne oluyor ?

Sen 50.000 curl requestini bir makina da aynı anda çalıştıramazsın bu bir. En basitinden port yetmez.

Farz edelim öyle hayali bir makina var. Kontrol altına alıp işi takip etmen için yine benim dediğim gibi yapman gerekiyor. İşin doğası bu.

Peki gerçekte nasıl olabilir böyle bir şey.

Mysql ile olmaz, daha doğrusu senin hayal ettiğin hızda olmaz yani. Hepsin den önce zart diye 50 bin isteği kayıt edemezsin.

Senin o "sonraki mevzuu" dediğin ilk requesti attığın anda acı gerçek olarak geri döner. O yüzden gerçek programcı dünyasında onu sonraya bırakamayız.

MySQL yerine nosql bir çözüm, kullanmalısın. Redis olabilir. Dil kısmında statik bir dille yazabilsen mesela go ile çok şekilli bir çözüm olabilir. Curl de kullanmazsın, her istek kendi go routine alt işlemini açar, işi bitirir kapatır, bulunduğu makinanın cpu port durumunu kontrol ederek yeni process açar veya bekler. Makina başına bir botla çözersin. Gayet performanslı çalışır.

Lakin, görünüşe göre o model seni biraz aşar. Bu yüzden phalcon php kullanabilirsin, en azından hafıza kullanımını düşürebilirsin.

Phalcon php ile daemon bot yazacaksın. Sürekli olarak çalışacak, sn de bir redis e request atıp yeni iş varmı diye soracak. Eğer varsa birinciyi alacak ve kilit atacak yani başka bir bot o isteği gelip almayacak.

Bot işi alacak, kitleyecek, işleyecek, ve geri cevap döndürecek, iş yapıldı olarak işaretlenecek.

Bu modeli kurduktan sonra. Elindeki donanım gücüne göre sen bir makinada kaç bot aynı aynda çalışabilecek bunu hesaplayacaksın. O makinada o kadar bot duracak, eğer isteğini bir makina karşılamıyorsa, bir makina redis i tutacak diğerlerinde botlar olacak, onlar bu makinaya bağlanıp senin işlerini yapacaklar SIRA İLE.

Müşterim verdiği işin durumunu anında görsün sıkılmasın diyorsan, websocket ile çalışan durum bildirme sistemi kuracaksın.

Yani ziyaretçin işleri bir sıraya sokucuya gönderecek, bu sıraya sokucuda web socket ile çalışan chat sistem mantığı olacak, İşler yazılırken, işlenirken devamlı bir biçimde sunucudan ziyaretçi bilgisayarına güncelleme yapacak.

Yani işi sıraya sokacaksın, tek tek dağıtacaksın, tek tek işleyeceksin ve tek tek kayıt edeceksin sevsen de sevmesen de. Sonra artık durumuna göre bu işleri 1 veya 10 veya 100 veya 1000 tane ameleye vereceksin.

Varsa başka çözüm görmek isterim...
wild YakupTEKiN

kişi bu mesajı beğendi.

TheCompany TheCompany WM Aracı Kullanıcı
  • Üyelik 26.10.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek Developer
  • Konum Ardahan
  • Ad Soyad Ç** T**
  • Mesajlar 193
  • Beğeniler 16 / 40
  • Ticaret 5, (%100)
Bildirim aldığım için yazıyorum, bu konu neden buralara geldi anlayamadım. Konuyu açan arkadaşın bilgisayarların çalışmasıyla alakalı teorik bilgisi zayıf gözüküyor. Tek sunucuyla hiç yavaşlamadan, sistemi çökertmeden o kadar isteği karşılayamazsınız ya o kadar istek yapılmasını engelleyeceksiniz ya da dağıtık bir yapı kurup daha fazla sunucu kullanacaksınız. Bu işin başka da bir açıklaması yok. @SancarSaran dediği gibi direkt işlemcinin çalışma mantığı sıraya koyup işleme mantığına dayanıyor.
 

 

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
TheCompany

Ben zaten "bir sunucu"dan milyonlarca sorguyu çalıştırsın demedim ki. Nasıl yapılabilir diye sordum ama klasik Türkiye sistemi olduğu için kimse birbirine "düzgün" cevap veremiyor-tartışamıyor.

Herkesin eline emeğine düşüncülerine sağlık. Bu bilgiler yeterli bana ben gerekli araştırmaları yaparım bundan sonrasına
 

 

SancarSaran SancarSaran WM Aracı Kullanıcı
  • Üyelik 14.01.2018
  • Yaş/Cinsiyet 52 / E
  • Meslek Programcı
  • Konum İzmir
  • Ad Soyad S** S**
  • Mesajlar 319
  • Beğeniler 4 / 111
  • Ticaret 0, (%0)
Sanırım kuşak çatışması denen şey bu.

Soru soruyorsun,

Cevap veriyoruz,

Öyle olmaz deyip bilmediğin halde kestirip atıyorsun, insan gibi sorsan anlamadım nasıl böyle olacak diye güzel güzel izahatı alacaksın, onun yerine eski tabirle Artistik yapıyorsun.

Dolayısı ile sonuçlarına katlanacaksın veya kendine bahane üretip sızlanacaksın.

Temeli Sosyal bilgilere dayalı bir iş yapsak diyeceğim ki gideri var. Ahmet gelmez ise Mehmet bu pazarlamaya gelir.

Lakin ortam müsait değil. Uğraştığın şey bilgisayar eninde sonunda mühendislik yapacaksın.

TheCompany

İster dağıtık kursun, ister toplanık. İşin olayı belli, job scheduler yazılacak, lamı cimi yok budur.

Kolay gele...
 

 

ikodev ikodev Developer Kullanıcı
  • Üyelik 08.05.2015
  • Yaş/Cinsiyet 28 / E
  • Meslek Developer
  • Konum Samsun
  • Ad Soyad İ** Ş**
  • Mesajlar 1020
  • Beğeniler 321 / 320
  • Ticaret 19, (%100)
Benim sormak istediğim ile verilen cevap farklı olduğu için istediğim yol bu değil dedim ama olay farklı yerlere gitti teşekkür ettim her şey için herkese kolay gelsin
 

 

SancarSaran SancarSaran WM Aracı Kullanıcı
  • Üyelik 14.01.2018
  • Yaş/Cinsiyet 52 / E
  • Meslek Programcı
  • Konum İzmir
  • Ad Soyad S** S**
  • Mesajlar 319
  • Beğeniler 4 / 111
  • Ticaret 0, (%0)
Rahat ol arkadaşım, sormak ta bir şey yok verilen cevabı beğenmemekte de bir şey yok. Yeter ki seni muhatap alan insanlara açık ol.

El elden üstündür, kimse bu işleri doğarken öğrenmedi.

Tecrübe işte böyle bir şey.
ikodev

kişi bu mesajı beğendi.

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al