Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tornado ve Ölçeklenebilirlik

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Mehmet Köse Mehmet Köse
November 21, 2013

Tornado ve Ölçeklenebilirlik

Yüksek trafik altındaki web sitelerinin ölçeklendirilmesi, örnek senaryo. NGINX & MONGODB & PYTHON/TORNADO
http://www.ozgurwebgunleri.org.tr/2013/etkinlik-programi/

Tornado & Scalability in Turkish

Avatar for Mehmet Köse

Mehmet Köse

November 21, 2013
Tweet

More Decks by Mehmet Köse

Other Decks in Programming

Transcript

  1. “ “DOĞRU ARAÇLARLA BAŞLARSANIZ, ÖLÇEKLENEBİLİRLİK DOĞRU ARAÇLARLA BAŞLARSANIZ, ÖLÇEKLENEBİLİRLİK SİZİN

    İÇİN LEGO OYNAMAK KADAR KOLAY OLACAKTIR” SİZİN İÇİN LEGO OYNAMAK KADAR KOLAY OLACAKTIR”
  2. BAŞLARKEN PROBLEM : CONCURRENT 10 000 (C10K) Bir sunucunun eşzamanlı

    10k bağlantıdan fazlasını karşılayamaması problemi. ASENKRON PROGRAMLAMA class AsyncHandler(RequestHandler): @tornado.web.asynchronous def get(self): http_client = tornado.httpclient.AsyncHTTPClient() http_client.fetch("http://example.com", callback=self.on_fetch) def on_fetch(self, response): do_something_with_response(response) self.render("template.html")
  3. TORNADO HELLO WORLD import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def

    get(self): self.write("Hello, world") application = tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": application.listen(8888) tornado.ioloop.IOLoop.instance().start()
  4. NGINX LOAD BALANCING http { upstream myproject { server 127.0.0.1:8888

    weight=1; server 127.0.0.1:8889; server 127.0.0.1:8890; server 127.0.0.1:8891; } server { listen 80; server_name www.domain.com; location / { proxy_pass http://myproject; } } }