打算重构一个项目使用 Django,大佬们给点建议

2021-01-27 10:25:09 +08:00
 Strive0630

哈喽~ 大佬们 我想把公司管理后台项目重构一下,重新写,使用的技术展的话,就是 python(3.x) + django(xxx) + rest framework + mysql + redis + mongodb + celery + nginx + docker + k8s 现在比较纠结的就是很多项目版本的问题,django 跟 python 或者很多数据库都使用什么版本比较稳定,而且版本还不会太老。希望大佬们踊跃留言,谢谢啦~ ,或者有更好的后端服务架构,用 python 写的,都可以推荐一下。谢谢大家了~

5618 次点击
所在节点    Python
57 条回复
aegon466
2021-01-27 16:41:25 +08:00
@Strive0630 上 k8s 了所以用的人不少吧 如果公司只有小几万人 没必要用这么臃肿 后期维护麻烦 不过你是想借此学习的话就当我没说过
SmartKeyerror
2021-01-27 17:10:29 +08:00
用 Go 来写管理后台这种并发量低、业务逻辑复杂的应用只怕是失了智,能不能不要动不动就推荐 Go 。
Celery 这东西还是有一些坑的,可以尝试用下 RQ 。k8s 的话如果是公司有统一的集群和完整的 CI/CD 套件,也就是一个 Chart 编写的问题。如果没有的话,还是 Docker 直接跑吧......
LeeReamond
2021-01-27 19:15:03 +08:00
@2379920898
@jmyz0455
@windfarer

然而事实是 go 并不能快一万倍。

https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=fortune&l=zijmrj-1r

根据 techempower 的测试,对于 1202 年的异步 python,框架转发能力方面,go 的最大模型领先五倍性能,中位数在 2-3 倍。所以 2-3 倍的执行效率(大概率冗余)是你从 python 生态切换到 go 生态的理由?
woostundy
2021-01-27 19:23:49 +08:00
@echo1937 #35 kafka
echo1937
2021-01-27 20:05:46 +08:00
@woostundy #44

celery,任务队列,kafka,消息队列,两者有一些区别,功能覆盖也不一样,
https://zhuanlan.zhihu.com/p/272855534
inframe
2021-01-27 22:53:04 +08:00
生态上还是有点差距的,python 你要啥啥都有,慢一点又没事,反正企业内部站点日均 10000 不到的访问量
写起来爽就完事
windfarer
2021-01-27 23:17:00 +08:00
@LeeReamond 说的就是啊,Web 应用都是 io 为主,不同语言速度差别没那么明显的
LeeReamond
2021-01-28 00:19:11 +08:00
@windfarer 仅是就事论事,讨论了一下目前的异步框架速度,扩大到全体语言和全体框架并不恰当,实际上前几年 djg2 的时代,使用同步模型+默认中间件设置的话确实是慢得很,go 快不上一万倍,但一千倍还是有可能的
windfarer
2021-01-28 00:28:29 +08:00
@LeeReamond 说实话 asyncio 我一直没找到能够优雅使用的方式,到现在还是用 gevent 一把梭
LeeReamond
2021-01-28 01:13:40 +08:00
@windfarer 跟技术栈有关,我开始学习异步已经是 3.5 版本以后的事,因为当时已有原生异步所以从一开始就否决了猴子补丁的方案。现在问我的话我觉得 asyncio 很优雅,并且完全不能理解 gevent 的使用方式
abersheeran
2021-01-28 09:54:46 +08:00
无脑推 aiohttp/sanic/fastapi 这类异步框架的我笑了。Celery 对 asyncio 的支持心里没点数?劝人上这个,你负责给他踩 Celery + asyncio 的坑?这种整体技术栈,Django+Celery+gevent 是最简单、高效的方式。
wzwwzw
2021-01-28 14:36:57 +08:00
Asyncio 现在的库和库的质量都非常一般。还是 Django + Celery + Gevent 一把梭。
zcl0621
2021-01-28 15:47:02 +08:00
你还差个 mongo rest framework ...
qile1
2021-01-29 16:16:45 +08:00
@LeeReamond 之前看论坛说 fastapi 并不是很快,推荐 bottle,您知道这两个哪个合适做微信公众号吗?
LeeReamond
2021-01-29 20:43:11 +08:00
@qile1 据我所知运营微信公众号不需要自建服务器?而且据我所知 bottle 是同步库,同步模型与异步模型在速度方面是有数量级差距的,这么比较并不公平。
maSHma
2021-02-02 09:20:07 +08:00
巧了,刚整上一个,使用 celery+redis,如果还用 flower 监测任务的话,有一些版本适配的坑,需要的话可以交流下
encro
2021-02-02 10:03:51 +08:00
个人觉得还是 django_q 比 celery 容易上手一些。
@maSHma


适合做公众号,当然是微擎

@qile1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/748789

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX