开源代码,开源的web服务器

  

  对于Web服务器来说,性能是最重要的因素之一,尤其是在高并发场景下,C10K―― Concurrently handling ten thousandconnections,即并发10000个连接.对于这种单个Web服务器来说,很难实现10000的并发。通常需要多台服务器集群来解决并发问题,但这样会导致成本很高。   

  

  本文介绍了一个基于Python的高性能开源Web服务器:Tornado,Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,通过使用非阻塞网络I/O,Tornado可以扩展到数万个开放连接,使其非常适合 long polling , WebSockets 以及其他需要与每个用户建立长期连接的应用程序.它被FriendFeed公司用于自己的网站FriendFeed。在被脸书收购后,该框架于2009年9月作为开源软件向公众开放。此外,它还具有处理安全性、用户认证、社交网络以及与外部服务(如数据库和网站API)的异步交互的工具。   

  

  平台: Tornado是为类Unix平台设计的,在系统支持方面具有最好的性能和可扩展性。Epoll (Linux) kqueue (BSD/MACOS)或/dev/poll (Solaris)。   

  

  Tornado也可以在Windows上运行,尽管这种配置不被官方支持或推荐用于生产。Windows缺少一些功能(包括多进程模式),扩展性有限(即使Tornado基于asyncio,支持Windows,但Tornado并没有使用Windows上可扩展网络所需的API)。Tornado官方文档网址:https://www.tornadoweb.org/en/stable/,源代码网址:https://github.com/tornadoweb/tornado,它的最新稳定版本是6.1。   

  

  多伦多官方文件   

  

  Tornado下载地址   

  

  龙卷风有四个主要部分:   

  

  Web 框架(包括 Request Handler,用于创建Web程序的基类,以及各种支持类),实现 HTTP 客户端和服务器端 (HTTPServer 和 Async HTTPClient),一个异步网络库 (IOLoop 和 IOStream):皮普的龙卷风安装命令安装龙卷风,如下所示:   

  

  安装龙卷风   

  

  Tornado安装成功   

  

  一个协程库(tornado.gen) ,使得异步调用代码能够以更直接的方式书写,取代回调链接,如安装Superset如果没有更改数据库,默认安装的SQLite数据库,该数据库的位置为当前安装用户的目录.superset下,如下所示:   

  

  超级数据库位置   

  

  将此数据库文件复制到d : \ programs \ python \ python 38 \ lib \ site-packages目录,如下所示:   

  

  复制数据库文件   

  

  C:\Users\user\.superset:   

  

  从超集导入OS . initial ization import supersettapinitializer from键入import Any,Callable,Dict,TYPE_CHECKINGfrom键入import Any,Callable,Dict,List,Optional,Sequence,Tuple,union from superset import create _ app from tornado . wsgi import wsgicontainer from tornado . http server import http server from tornado . io loop import io looposenviron ' superset _ HOME '=' d : \ Programs \ Python \ Python 38 \ Lib \ site-packages ' superset _ app=create _ app()if _ _ name _ _=' _ _ main _ _ ' : http _ server=http server(wsgi container(superset _ app))http _ server . listen(8001)Print(' run . ')ioloop.current()。start()通过编写一个Tornado运行Superset入口的py文件:supersetserver.py,代码如下:创建Windows服务,的nssm封装Windows服务,如下所示:   

  

  创建超集的windows服务   

  

  nssm.exe install "SupersetService" "D:\Programs\Python\Python38\python.exe" "D:\Programs\Python\Python38\Lib\site-packages\supersetserver.py"如下:   

  

  启动超集的Windows服务   

  

  成功启动了超集的windows服务   

  

  输入要运行的超集URL:http://127 . 0 . 0 . 1:8001/,并成功登录,如下图:   

  

  成功登录到超集   

  

  启动windows服务:nssm.exe start SupersetService,   

  

  为了达到最佳性能和稳定性,生产环境还是建议部署到Linux中,不建议在Windows下部署。   

相关文章