python服务搭建
1.背景介绍
现状:
单位绝大部分服务语言为Java,使用的是过去很长一段时间非常流行的SSM框架:spring+springmvc/springboot+mybatis。众所周知,这些框架经过了无数次、高强度的验证,证实具有高稳定性、高规范性、高敏捷性。也正因此,现在非常多的公司都在采用这一技术架构。
局限性:
虽然SSM框架有着如此多的优点,在特定场景下,其还是存在一定的不足之处,而恰巧机器学习中的一些领域就对应这些特定场景。由于python语言的简单、易学,其在机器学习领域的日常开发中被广泛使用。因此自机器学习发展至今,绝大多少机器学习工具包都为python实现。而我们算法团队这边为了方便日常开发,试图使用python作为我们的开发语言。因此,对于技术选型,就显得尤为重要了。
2.技术调研与选型
(1)Web Service框架:Tornado
①Flask
目前头条、豆瓣、迅雷等很多公司都在使用flask+uwsgi这一架构。Flask是一个比较轻量级的web service,上手简单,但是功能相对较少,其将很多网络请求工作交给了uWSGI服务器。
其缺点比较明显:异步能力不足,处理能力有限。当请求量过大的时候,可能响应不及时。Flask在版本迭代过程中使用过两种模型:poll、select。