Szukam pomysłów, jak przyspieszyć przekazywanie wiadomości za pośrednictwem RabbitMQ.Szybkość transferu RabbitMQ przyspiesza?
Zainstalowałem najnowszą wersję na 64-bitowym systemie Windows, uruchamiając serwer na moim komputerze lokalnym, na którym również publikuję i pobieraję do/z aplikacji C#. Początkowo przekraczałem 40 000 wiadomości na sekundę, co jest imponujące, ale nie odpowiada moim potrzebom (rywalizuję z niestandardowym czytnikiem binarnym, który może obsłużyć 24 miliony niezarealizowanych 16-bajtowych tablic bajtowych na sekundę, oczywiście nie spodziewam się zbliżyć do tego, ale Próbuję przynajmniej poprawić). Muszę jak najszybciej wysłać około 115 000 000 wiadomości. Nie chcę utrwalać danych, a połączenie będzie bezpośrednie dla pojedynczego klienta. Następnie zbudowałem fragmenty 16-bitowych tablic i opublikowałem na magistrali bez żadnej poprawy. Szybkość transferu max. 45mb/s. Uważam, że jest to bardzo powolne, biorąc pod uwagę fakt, że w końcu powinien po prostu sprowadzać się do nieprzetworzonej prędkości transmisji, ponieważ mógłbym tworzyć tablice bajtowe o wielkości kilku megabajtów, gdzie współczynnik wydajności routingu przez centralę staje się nieistotny w porównaniu do nieprzetworzonej prędkości transmisji. Dlaczego moja magistrala komunikatów ma maksymalną prędkość transferu 45 Mb/s?
jeśli jest tylko 1 konsument, dlaczego nie wysłać bezpośrednio przez TCP? naprawdę nie potrzebujesz autobusu z wiadomościami. –
Jak wygląda twój IO (sieć, dysk) i procesor podczas tych testów? – Xailor
prawdopodobnie powinieneś spojrzeć na zeromq zamiast rabbitmq. Twoje zadanie wydaje się być odpowiednie dla 0mq. Przynajmniej mają około 3 000 000 wiadomości na sekundę dla tego rozmiaru wiadomości (16 bajtów). http://www.zeromq.org/results:0mq-tests-v03 –