tornado1
1.基本操作
2.自定义开源组件 - session - form表单验证(*) 3.自定义异步非阻塞web框架 import tornado.ioloop import tornado.web # 定义处理类型 class MainHandler(tornado.web.RequestHandler): C10k问题: 新到来一个TCP连接,就需要分配一个进程。假如有C10K,就需要创建1W个进程,可想而知单机是无法承受的。那么如何突破单机性能是高性能网络编程必须要面对的问题,进而这些局限和问题就统称为C10K问题 当创建的进程或线程多了,数据拷贝频繁(缓存I/O、内核将数据拷贝到用户进程空间、阻塞,进程/线程上下文切换消耗大, 导致操作系统崩溃,这就是C10K问题的本质。 解决C10K问题的关键就是尽可能减少这些CPU资源消耗。
Linux 系统需要修改内核参数和系统配置,才能支持 C1000K. C1000K 的应用要求服务器至少需要 2GB 内存,如果应用本身还需要内存,这个要求应该是至少 10GB 内存. 同时,网卡应该至少是万兆网卡. ? 优点: 一个url对应一个类 轻量级web框架 异步非阻塞IO处理方式 抗负载能力强 不依赖多进程/多线程,一定程度上解决C10k问题 ? Django和tornado的区别: Django:功能大而全,注重高效开发,内置管理后台,内置封装完善的ORM操作,session功能,后台管理。缺点:高耦合 tornado:功能少而精,注重性能优越,HTTP服务器,异步编程,websocket ? tornado.web:tornado的基础web框架 RequestHandler:封装对请求处理的所有信息和处理方法 get/post:封装对应的请求方式 write:封装响应信息 tornado.ioloop:核心io循环模块,封装linux的epoll和BSD的kqueue,tornado高性能处理的核心。 current()返回当前线程的IOLoop实例对象 start()启动IOLoop实例对象的IO循环,开启监听 ? httpserver底层处理 httpserver监听端口 tornado.httpserver.HTTPServer(app) httpserver.listen(port) ? app = Application([(r‘/‘,Index)],debug=True) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |