亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Node.js amqplib 連接 Rabbit MQ最佳實(shí)踐

 更新時(shí)間:2019年01月24日 14:21:17   作者:wangduanduan  
這篇文章主要介紹了詳解Node.js amqplib 連接 Rabbit MQ最佳實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

客戶端設(shè)置connection_name

在建立連接時(shí),設(shè)置connection_name屬性,可以在RabbitMQ Managerment 中查看到連接來自那個(gè)實(shí)例。

amqp.connect(rabbitMqAddress, {
  clientProperties: {
   connection_name: 'your host name'
  }
})

隊(duì)列屬性autoDelete durable

如無必要,建議將隊(duì)列設(shè)置成自動(dòng)刪除,這個(gè)在TCP連接斷開后,隊(duì)列會(huì)自動(dòng)刪除。另外也不要使用持久化隊(duì)列。

channel.assertQueue(queueName, {
  autoDelete: true,
  durable: false
})

connnection 和 channel管理

connnection的內(nèi)存消耗。一個(gè)connection至少要使用100kb的內(nèi)存空間,過多的connetion占用將會(huì)導(dǎo)致內(nèi)存溢出,服務(wù)崩潰等問題。(我曾遇到過生產(chǎn)系統(tǒng),RabbitMQ連接過多,系統(tǒng)一直處于崩潰邊緣的險(xiǎn)境)

重用connection或者channel,而不要重復(fù)開關(guān),下面給出AMQP各個(gè)階段所耗費(fèi)的tcp包,重復(fù)的開關(guān),將會(huì)導(dǎo)致

  • AMQP connections: 7 TCP packages
  • AMQP channel: 2 TCP packages
  • AMQP publish: 1 TCP package (more for larger messages)
  • AMQP close channel: 2 TCP packages
  • AMQP close connection: 2 TCP packages
Total 14-19 packages (+ Acks)

一個(gè)進(jìn)程,一個(gè)channel, 一個(gè)connection,如果一個(gè)pod向RabbitMQ建立了多條tcp連接,你就要警惕了。

監(jiān)控進(jìn)程與RabbitMQ TCP連接數(shù),將NodeJS的運(yùn)行信息寫入influxDB,并在grafana做監(jiān)控和告警。其中tcp連接數(shù)可以使用shelljs執(zhí)行命令獲取。

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)
  }
 })
}

參考

https://www.cloudamqp.com/blog/2017-12-29-part1-rabbitmq-best-practice.html
https://www.cloudamqp.com/blog/2018-01-08-part2-rabbitmq-best-practice-for-high-performance.html
https://www.cloudamqp.com/blog/2018-01-19-part4-rabbitmq-13-common-errors.html

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Node.js的文件權(quán)限及讀寫flag詳解

    Node.js的文件權(quán)限及讀寫flag詳解

    Node.js對(duì)文件的讀寫還是相當(dāng)靈活的,因?yàn)樽约豪鲜怯洸蛔∥募蚰夸洐?quán)限的數(shù)值表達(dá)和字符表達(dá)。所以整理出這篇文章,方便以后查閱,下面來一起看看吧。
    2016-10-10
  • node.js中的fs.fstat方法使用說明

    node.js中的fs.fstat方法使用說明

    這篇文章主要介紹了node.js中的fs.fstat方法使用說明,本文介紹了fs.fstat的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 安裝多版本node的完整步驟記錄

    安裝多版本node的完整步驟記錄

    在平時(shí)的使用中常會(huì)遇到這樣的場(chǎng)景,手上有多個(gè)前端項(xiàng)目,每個(gè)項(xiàng)目使用的Nodejs的版本都不太一致,下面這篇文章主要給大家介紹了關(guān)于安裝多版本node的完整步驟,需要的朋友可以參考下
    2024-01-01
  • Mac中安裝nvm的教程分享

    Mac中安裝nvm的教程分享

    下面小編就為大家分享一篇Mac中安裝nvm的教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • nodejs項(xiàng)目windows下開機(jī)自啟動(dòng)的方法

    nodejs項(xiàng)目windows下開機(jī)自啟動(dòng)的方法

    今天小編就為大家分享一篇nodejs項(xiàng)目windows下開機(jī)自啟動(dòng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • node操作mysql數(shù)據(jù)庫實(shí)例詳解

    node操作mysql數(shù)據(jù)庫實(shí)例詳解

    這篇文章主要介紹了node操作mysql數(shù)據(jù)庫,結(jié)合實(shí)例形式較為詳細(xì)的分析了node操作數(shù)據(jù)庫的連接、增刪改查、事務(wù)處理及錯(cuò)誤處理相關(guān)操作技巧,需要的朋友可以參考下
    2017-03-03
  • 分享五個(gè)Node.js開發(fā)的優(yōu)秀實(shí)踐?

    分享五個(gè)Node.js開發(fā)的優(yōu)秀實(shí)踐?

    這篇文章主要介紹了分享五個(gè)Node.js開發(fā)的優(yōu)秀實(shí)踐,文章圍繞主題展開詳細(xì)的分享內(nèi)容,需要的小伙伴可以參考一下,希望對(duì)你的工作有所幫助
    2022-04-04
  • 解析NodeJs的調(diào)試方法

    解析NodeJs的調(diào)試方法

    本文主要介紹了NodeJs調(diào)試的步驟,以及實(shí)例方法,具有一定的參考作用,需要的朋友可以看下
    2016-12-12
  • electron demo項(xiàng)目npm install安裝失敗的解決方法

    electron demo項(xiàng)目npm install安裝失敗的解決方法

    下面小編就為大家分享一篇electron demo項(xiàng)目npm install安裝失敗的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 在Node.js中實(shí)現(xiàn)文件復(fù)制的方法和實(shí)例

    在Node.js中實(shí)現(xiàn)文件復(fù)制的方法和實(shí)例

    這篇文章主要介紹了在Node.js中實(shí)現(xiàn)文件復(fù)制的方法和實(shí)例,使用FS模塊實(shí)現(xiàn),需要的朋友可以參考下
    2014-06-06

最新評(píng)論