This problem have more aspects. The short answer can be yes, you can handle this but let see some points of view.
First of all 1 million requests mean a request at every 1microsecond (1/1000000).
Next, if a regular ethernet packet has 1500 bytes (let say rounded 1.5k) multiply this with 1000000. So, at limit, your hardware must be able to receive, store and handle this huge amount of information in one second but more than that, until you process this information it continue to come, right?
Let say you have this insane hardware and from Go through standard library you receice packets. For the sake of simplicity let supose that one requests has one packet (though in real life a tcp connection has more), probably with goroutine mechanism will handle the number of requests but also we have two problems here:
- processing every request under 1microsecond
- return results (remember the huge amount of incoming information? results can be more than that as space, but imagine what bottle neck can be on data return path)
As i already say few comments bellow are some techniques to quick queue the requests and execute them later. Also returning results can be or must be prioritized and handled (this depends of kind of processing). Of course this is a generally discution, probably more specific details will change this things.
See follow resource who treat the problem from operating system point of view. Also useful for testing your conditions.