Tornado ve Ölçeklenebilirlik

79c95766e7b383725839b79e49a632e0?s=47 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

79c95766e7b383725839b79e49a632e0?s=128

Mehmet Köse

November 21, 2013
Tweet

Transcript

  1. 4.

    “ “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. 5.

    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. 12.

    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. 16.

    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; } } }
  5. 21.