go的并发很优秀,这里我就不吹嘘了,大神们,我想知道如果使用flask(我只熟悉flask,tornado没用过)开发完web之后,碰到高并发的话怎么结合go解决并发问题?
1.整个应用迁到go,用go重写?
2.还是通过rpc然后将整个并发请求处理都迁到go?
3.还是有其它的处理方式?
诚信求助,架构这块并不是很熟。
go的并发很优秀,这里我就不吹嘘了,大神们,我想知道如果使用flask(我只熟悉flask,tornado没用过)开发完web之后,碰到高并发的话怎么结合go解决并发问题?
1.整个应用迁到go,用go重写?
2.还是通过rpc然后将整个并发请求处理都迁到go?
3.还是有其它的处理方式?
诚信求助,架构这块并不是很熟。
如果是多端rest调用的话,直接以微服务的方式,把go写的映射到域名某个路径就好了 比如:domain.com/api/go/xxx/xxx
, 做好session共享就好了,一般用token之类的。
如果只是单应用,用sock或rpc都可以。或者直接加载 lib.dll/lib.so
方式都行。
flask照样能够应付高并发的,以我的经验,使用flask+uwsgi+mongodb,1秒钟几千个请求(一天可以处理上亿的pv)都是能够轻松应付的。我觉得,一般并不是换了go就能解决高并发的问题。性能的问题,无非取决于几点,数据库(一般是索引)是并发最主要的瓶颈,其次是uwsgi等的生产环境工具使用,redis等缓存的使用,再到业务逻辑实现的思路,再到部署服务器的硬件配置,如磁盘io,网络等。
2 回答1.3k 阅读
2 回答1.1k 阅读
2 回答1.1k 阅读
2 回答868 阅读
3 回答684 阅读
1 回答766 阅读
1k 阅读
我推荐第二种做法,也就是现在比较流行的微服务架构,让适合的语言做适合的事情,将对并发要求比较高的业务交给go来写,两者之间通过rpc通讯。