問題
在做rabbit性能測(cè)試的時(shí)候刁赦,出現(xiàn)
The channelMax limit is reached. Try later.
解決
需要修改 /etc/rabbitmq/rabbitmq.conf 自行創(chuàng)建
#0 意味著無限制
channel_max=0
service rabbitmq-server restart
但是 , spring boot 最大限制channel也是 2074
另辟蹊徑
加入cache. connection.size: 100鏈接數(shù) 1024 *0.9
cache. connection: connection
rabbitmq:
host: 192.168.0.111
port: 5672
username: admin
password: 123456
#虛擬host 可以不設(shè)置,使用server默認(rèn)host
virtual-host: /
publisher-returns: true
publisher-confirm-type: correlated
template:
mandatory: true #路由不可達(dá)的消息會(huì)被監(jiān)聽到丸升,不會(huì)被自動(dòng)刪除
# 打開消息確認(rèn)機(jī)制
listener:
simple:
acknowledge-mode: manual
retry:
enabled: true
cache:
connection:
size: 500 #緩存的連接數(shù)发钝,只有是CONNECTION模式時(shí)生效 默認(rèn)最大鏈接數(shù) 1024 *0.9
mode: connection
測(cè)試結(jié)果
10W條數(shù)據(jù) 10個(gè)線程 33秒
總結(jié)波闹,
channel模式 秒并單鏈接發(fā)可以到達(dá) 約 1000多/s 再高就要The channelMax limit is reached.
connection模式 200 鏈接 10線程 大概也是 在 3000多/s 左右,
因?yàn)殚_了callback 如果關(guān)閉估計(jì)會(huì)更高 孵淘。
也就是說單機(jī)情況 3000 基本是極限了(不是推薦鏈接模式)
超過1000就要開始考慮別的形式了歹篓。集群或kafka了
我看別人比較好的機(jī)器可以測(cè)試到8.5K/s ,24核64G內(nèi)存那種庄撮。 我這個(gè)使用了內(nèi)網(wǎng)不是本機(jī)
在加上有一定的事務(wù)估計(jì)去掉也很接近了。