RabbitMQ使用一个非负长(63位整数,因为只有非负整数)调用一个传递标记来存储通过一个通道发送了多少条消息。如果您通过信道发送(2^63)+1条消息,会发生什么情况?
发布于 2013-10-26 07:03:30
根据我的餐巾纸背面计算,假设是一个最大发布速率为每秒53,710条消息,你必须出版7.06×10^13年,这比已知宇宙的年龄大四个数量级。
换句话说,如果我们假设每个处理器周期可以发布3条消息,而Intel处理器每秒可以处理7,000,000条消息,那么仍然需要近84年的时间。
因此,可以安全地得出结论,您将首先遇到其他问题。但是,如果您的RabbitMQ服务器能够持续运行那么长时间,那么您应该得到奖励。
但严肃地说,如果这是以某种方式发生的,我想这取决于Erlang如何处理整数。这个职位表示Erlang将耗尽内存--我不完全理解他们是如何做到这一点的,但也许那时整个系统会崩溃呢?谁知道呢。在c#中,In只是在溢出之后滚动。
https://stackoverflow.com/questions/19576092
复制