admin 管理员组文章数量: 887044
2024年1月17日发(作者:企业网站建设论文5000)
《工业控制计算机》2020年第33卷第10期97基于Flask的分布式Web服务架构研究与应用徐
杰
(公安部第三研究所928实验室,上海201210)摘要:研究基于Flask的分布式Web服务研究与应用。目前Python在工业界使用越来越广泛,Python开发Web服务
应用也被越来越多的厂商采用,目前基于Web的框架,有各种语言的服务框架,但是Python语言的生态现在越来越完善,
使用Python语言进行Web服务开发咱1],可以很容易进行相应服务的开发,因为Python生态非常好,相应的应用工具和库也
非常的完善。在加上Nginx代理、MySQL、Mongo、Redis相关的数据库,可以很容易构建一个分布式高可用的Web服务。关键词:Web
服务;Python
;
Flask基于http的Web服务是一种独立的,与其他服务低耦合
的一种Web应用服务程序,是一种以服务为导向的技术架构,
通过标准的Web协议提供服务,目的是保证不通平台的应用服
务可以互相操作。所以基于http的Web服务开发了我们自己
的应用系统,开发的Web服务,用户只需要浏览器即可访问,无
需要安装其他应用程序,用户使用和操作更加方便。1常见的Python
Web服务框架比较现在,Python的生态非常完善,生态里面有很多开发框架
可以轻松构建Web应用。Web开发框架的意义就在于可以敏
捷地开发和构建应用,而不需要在没必要的技术细节中浪费时
间,可以迅速地开发自己的产品,保证产品的快速产岀。Python的Web框架也有越来越多的厂商开始使用,使用
Python开发和构建自己的产品,如国外知名的YouTube、Insta-
gram、Reditt,国内的有知乎、豆瓣等,都应用到了不同的Python
Web框架。下面就介绍一下Python生态中常见的一些Web框架。常见的
Python
Web
服务框架有:Django、Flask、Tornado、
Web2py
等。1.1
Dja
ngoDjango在Python语言的Web开发框架中,很有代表性和
知名度,Django的名字是来自于一位法国的作曲家和吉他演奏
家
Django
Reinhardt。Django遵循了
MVC开发模型,M、V、C分别表示:M
ModDl(数据模型,用于定义后端的数据库模型);T
Template(模板,用于定义前端显示信息);V
View(视图,用于接收客户端请求,处理model,渲染返
回给客户端)。优点:Django是一个一站式的开发和解决方案,Django中的各
种WDb组件集成度也非常成熟,配置齐全,内部的数据模型和
对用户操作的权限认证体系健全,0RM数据库管理也比较成
熟,并且有自带的后台管理功能。缺点:Django是一个很重的Web开发框架,系统大而全,庞大的
系统袁复杂的配置袁使得学习成本很高袁对于一些轻应用和一些
需要敏捷开发的产品袁可能并不适用。1.2
Flask相对于Django的大而全的大系统,Flask是基于Werkzeug
工具箱开发的轻量级Web开发框架,主要面向一些功能简单、
需求简单、项目周期比较短的一些轻应用。Flask框架比较灵活,Flask只是完成了
Werkzeug和模板引
擎Jinja基本的核心功能,其他的功能都是由第三方插件完成。优点:Flask的项目结构简单,核心服务比较轻量,配置比较简单,
第三方组件可以自由拆卸,比较适用于小型的项目开发使用。缺点:由于Flask的组件高度自由,全部可以自定义,那么各种组
件自定义带来的组件兼容性问题比较明显,所以需要搭配兼容
的组件版本。1.3
TornadoTornado和Flask
一样,除了基本的处理功能和模板外,其
他的功能组件都需要自行拼装遥优点:Tornado也是一个小巧精悍的Web框架,性能比较好,不
依赖Python多进程多线程,支持异步非阻塞I0处理方式。缺点:Tornado过于精简,所以一般只适用于做一些接口化的服
务和一些微型网站。1.4
Web2pyWDb2py是一个开源框架,它开始是作为工具开发的,它的
目标是去除大量重复开发工作,最开始的源代码是由Massimo
DiPierro在2007年开发的,Web2y和Django
—样,具有广泛
的文档,适用与常规的Web服务开发。优点:作为一个全栈式框架,它无需其他依赖就可以工作,容易部
署。安装无需任何配置文件,下载完成即可使用。安全性也比较岀色,WDb2py的模板语言减少了黑客使用
跨站脚本的危险。会话由于存储在后台服务器上,所以可以防止
页面用户对浏览器中的cookie进行篡改。2
Web服务架构设计通过对每个框架特点的比较,通过对Flask框架在易用性、
学习成本和生态等方面的综合考虑,最后结合我们自己的业务
场景,选取了
Flask作为开发的Web框架。系统总体架构分为三层,第一层是直接面向用户的网关层,
网关层我们选取了
Nginx作为网关层的服务框架,Nginx在处
理网络请求方面具有很好的性能囱,网关层负责直接连接用户,
处理用户发送和接收的请求;第二层为Web服务的API处理
层,这一层主要是处理与API接口相关的逻辑,我们选择了
Flask作为服务接口的处理框架,Flask作为服务接口的开发框
架,使得我们开源快速的开发岀我们的Web应用程序;第三层
为数据层袁
这一层主要是处理存储数据服务的袁
主要使用了
MySQL、Elasticsearch
和
Mongodb
数据存储服务。Web
服务架构如图
1
所示。2.1网关层网关层中使用Nginx服务作为代理,Nginx是一款高性能、
版权声明:本文标题:基于Flask的分布式Web服务架构研究与应用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705456059h485458.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论