我正在创建一个侦听多个端口的简单udp客户端,并将请求保存到bigtable。

在您询问之前,必须在不同的端口上进行监听。

直到我加入了bigtable,一切都运转良好。这样做之后,听众将完全阻塞。

我的精简代码(没有bigtable)看起来像这样:

但是,只要我在bigtable中添加了以下内容,这一切就正常了。如果删除创建侦听器的go例程(这意味着我无法在多个端口上侦听),它将正常工作。

我设法通过在createBigTable函数中添加查询来使其正常工作,但该程序稍后仍会阻塞。

我不知道这是bigtable,grpc还是我的工作方式的问题。

真的很感谢一些有关如何修复的建议。

-更新-

我发现问题不仅出在BigTable上,当我调用gcloud pubsub时,我也遇到了同样的问题。

-更新2-

在初始化函数中(主要功能之前)调用createBigtable:

-更新3-

sigquit的输出可以在这里找到:

https://pastebin.com/fzixqmiA


在您的操场示例中,您正在使用for {}来使服务器永远运行。
这似乎使goroutines不再运行。
尝试使用例如 WaitGroup可以从main()例程产生控制权,并让flow()例程处理传入的UDP数据包。