首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Go中处理并发http请求

在Go中处理并发http请求
EN

Stack Overflow用户
提问于 2021-10-15 07:31:05
回答 1查看 3.2K关注 0票数 0

我想重写一个拥有大量并发用户的应用程序。想象一下,一个聊天应用程序,有数以百万计的用户通过Websocket连接。我习惯了微调Python+Django+UWSGI和今天起作用的体系结构。现在,我看到了缓慢的连接和超时等等。

我决定使用Go语言并放弃Python,我的问题是我找不到任何类似UWSGI的东西,而且我知道Go具有内置的并发功能。这意味着Go服务器不需要类似于UWSGI的东西,并且能够处理并发请求?还是go中提到的并发性只是简单的I/O?

我需要最大限度的性能和并发性。我对这个问题理解得很好?这两个是等价物?去能帮我吗?而且我们不需要像UWSGI这样的东西,而Go的核心功能可以在这个问题上更快更好地工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-15 11:12:12

你应该看看围棋频道。Go通道与Go例程相结合,可以很容易地在同一进程中扩展并发性。与Java线程相比,Go例程效率很高,上下文切换也更少。仅为4kb的mem消费量。在Go中,您不共享内存,而是通过将它们推送到通道上来传递状态,这将导致没有上下文切换到访问共享内存。

Go中的通道以类似的方式工作,比如使用Apache或RabbitMq之类的排队系统。

我在下面的博客中就此写了一个广泛的例子。

https://marcofranssen.nl/concurrency-in-go

如果你真的是新手,我也可以建议你看看我的其他文章。

https://marcofranssen.nl/categories/golang

阅读他们从老到新,以熟悉语言后,做了快速开始教程。

一旦了解了Go通道,就知道了如何有效地实现内部逻辑。对于面向外部的API,我将选择https://grpc.io/,它允许在TCP级别上进行通信。它允许在两个方向上进行流实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69581298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档