jey,女排大冠军杯,盛夏晚晴天下载mp4
客户端设置connection_name
在建立连接时,设置connection_name属性,可以在rabbitmq managerment 中查看到连接来自那个实例。
amqp.connect(rabbitmqaddress, { clientproperties: { connection_name: 'your host name' } })
队列属性autodelete durable
如无必要,建议将队列设置成自动删除,这个在tcp连接断开后,队列会自动删除。另外也不要使用持久化队列。
channel.assertqueue(queuename, { autodelete: true, durable: false })
connnection 和 channel管理
connnection的内存消耗。一个connection至少要使用100kb的内存空间,过多的connetion占用将会导致内存溢出,服务崩溃等问题。(我曾遇到过生产系统,rabbitmq连接过多,系统一直处于崩溃边缘的险境)
重用connection或者channel,而不要重复开关,下面给出amqp各个阶段所耗费的tcp包,重复的开关,将会导致
total 14-19 packages (+ acks)
一个进程,一个channel, 一个connection,如果一个pod向rabbitmq建立了多条tcp连接,你就要警惕了。
监控进程与rabbitmq tcp连接数,将nodejs的运行信息写入influxdb,并在grafana做监控和告警。其中tcp连接数可以使用shelljs执行命令获取。
function getrabbitmqconnnectioncount (params) { shell.exec(`netstat -nt | grep ${rabbitmqhost} | wc -l`, (code, stdout, stderr) => { try { if (code === 0) { rabbitmqconnnectioncount = parseint(stdout) || 0 } } catch (error) { log.error(error.message) } }) }
参考
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
JavaScript使用prototype属性实现继承操作示例
JavaScript直接调用函数与call调用的区别实例分析
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
网友评论