我有一个客户端发送大约 50 万个请求(消息)/分钟。每条消息大约为 200 字节到 2KB。每条消息都将保存在数据库中(例如 Couchbase)。
根据核心、端口、连接和 goroutines 来构建 Go TCP 服务器以处理此负载的正确方法是什么?
最佳答案
正如 JimB 所提到的,TCP 服务器应该不难建立并开始针对您的需求进行基准测试。一个简单的布局是等待传入的 TCP 连接,然后执行一个 go 例程来处理它。在那个 goroutine 中,你可以放置任何你想要的阻塞代码,在本例中是写入数据库。这是一个简单示例的链接:
一旦你开始工作,如果它不符合你的性能标准,你可以让它更复杂。这是一个使用工作池每分钟处理 1M HTTP 请求的很好的示例。
关于performance - Go 中异步 TCP 服务器的正确结构是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37052664/