登录
首页 >  Golang >  Go问答

解决背压问题的方法在GO GRPC中是什么?

来源:stackoverflow

时间:2024-02-06 10:18:13 237浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《解决背压问题的方法在GO GRPC中是什么?》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我有一个场景,客户端可以通过 GRPC 连接到服务器,我想对其实施背压,这意味着我想接受许多并发请求 10000,但只有 50 个并发线程执行请求(这受到 Apache Tomcat NIO 界面行为的启发)。我还希望通信以反应方式异步进行,这意味着客户端发送请求但不等待,服务器稍后发回响应,然后客户端执行一些注册要执行的函数。 p>

如何在 GO GRPC 中做到这一点?我应该使用流吗?有例子吗?


正确答案


GoLang API 是一个同步 API,这就是 GoLang 通常的工作方式。您将阻塞在 while true 循环中,直到事件发生,然后继续处理该事件。关于让更多并发线程执行请求,我们无法在客户端进行控制。在 gRPC 之上的应用程序层的客户端,您可以分叉更多 Goroutine,每个 Goroutine 执行请求。服务器端已经为每个接受的连接分叉了一个 goroutine,甚至连接上的流,因此服务器端已经存在固有的多线程。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>