2013-10-24 15 views

Odpowiedz

13

Zgodnie z kalkulacjami z mojej strony, zakładając maximum publish rate of 53,710 messages per second, musiałbyś publikować łącznie 7,06 x 10^13 lat, czyli cztery rzędy wielkości większe niż wiek znanego wszechświata.

Innymi słowy, jeśli założymy, że w jakiś sposób można opublikować 3 wiadomości na cykl procesora, a procesor Intel mógłby przetwarzać 7 000 000 000 wiadomości na sekundę, to zajęłoby to prawie 84 lata.

Dlatego można bezpiecznie wnioskować, że najpierw napotkasz inne problemy. Ale jeśli twój serwer RabbitMQ będzie działał tak długo, zasługujesz na nagrodę.

Ale z całą powagą, jeśli tak się stało, wyobrażam sobie, że to zależy od tego, jak Erlang obsługuje liczby całkowite. This post wskazuje, że Erlangowi zabraknie pamięci - nie do końca rozumiem, jak to się dzieje, ale może cały system wybuchnie? Kto wie. W języku C#, ints po prostu rzucić po overflow.

+0

Tak, wiem, że jest mało prawdopodobne, aby wysłać tak wiele wiadomości. Byłem zainteresowany tym, co się stanie, jeśli to zrobisz. Chociaż możemy sobie wyobrazić, co się dzieje, starałem się sprawdzić, czy ktoś już wie, czy może wskazać mi odniesienie. –

+1

Nie "mało prawdopodobne" - niemożliwe, zważywszy na twoją definicję problemu. Ale próbowałem teoretyzować w drugiej części mojej odpowiedzi :) Być może można było ustawić test, w którym wartość całkowita została celowo ustawiona na (MaxValue-1) lub coś, chociaż myślę, że byłaby to ćwiczenia akademickie. – theMayer

Powiązane problemy