最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

客戶端設(shè)置connection_name

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

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

隊(duì)列屬性autoDelete durable

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

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

connnection 和 channel管理

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

重用connection或者channel,而不要重復(fù)開(kāi)關(guān),下面給出AMQP各個(gè)階段所耗費(fèi)的tcp包,重復(fù)的開(kāi)關(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)行信息寫(xiě)入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

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

相關(guān)文章

  • 從零學(xué)習(xí)node.js之模塊規(guī)范(一)

    從零學(xué)習(xí)node.js之模塊規(guī)范(一)

    Node.js是一個(gè)基于谷歌瀏覽器JavaScript執(zhí)行環(huán)境建立的一個(gè)平臺(tái),讓JavaScript可以脫離客戶端瀏覽器運(yùn)行,讓 JavaScript具有服務(wù)器語(yǔ)言的能力。從本文開(kāi)始我們進(jìn)行學(xué)習(xí)node.js,這篇文章主要介紹的是node.js中模塊規(guī)范的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • NodeJS同步和異步實(shí)例代碼講述異步編程

    NodeJS同步和異步實(shí)例代碼講述異步編程

    異步編程是NodeJS最大的特點(diǎn),異步編程依托于回調(diào)來(lái)實(shí)現(xiàn),有很多特有的代碼設(shè)計(jì)模式,為了實(shí)現(xiàn)同樣的功能,使用同步方式和異步方式編寫(xiě)的代碼會(huì)有很大差異,本文通過(guò)幾個(gè)同步和異步實(shí)例代碼講述異步編程的使用方法
    2024-01-01
  • 詳解基于 Node.js 的輕量級(jí)云函數(shù)功能實(shí)現(xiàn)

    詳解基于 Node.js 的輕量級(jí)云函數(shù)功能實(shí)現(xiàn)

    這篇文章主要介紹了詳解基于 Node.js 的輕量級(jí)云函數(shù)功能實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化

    輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化

    這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化,本文是對(duì)第一節(jié)的例子作了封裝,需要的朋友可以參考下
    2014-12-12
  • 深入理解Node.js中的進(jìn)程管理

    深入理解Node.js中的進(jìn)程管理

    這篇文章主要介紹了Node.js中進(jìn)程管理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),相信對(duì)大家的學(xué)習(xí)或者工作具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03
  • express啟用https使用小記

    express啟用https使用小記

    這篇文章主要介紹了express啟用https使用小記,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • 一文詳解NPM如何換源

    一文詳解NPM如何換源

    在每一次的實(shí)際開(kāi)發(fā)過(guò)程中我們都會(huì)下載相關(guān)的依賴包,最官方的是 npm,但是該服務(wù)器對(duì)于國(guó)內(nèi)開(kāi)發(fā)者來(lái)說(shuō),下載起來(lái)是比較慢的,所以我們需要換源,下面這篇文章主要給大家介紹了關(guān)于NPM如何換源的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 詳解puppeteer使用代理

    詳解puppeteer使用代理

    這篇文章主要介紹了詳解puppeteer使用代理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • node.js 開(kāi)發(fā)指南 – Node.js 連接 MySQL 并進(jìn)行數(shù)據(jù)庫(kù)操作

    node.js 開(kāi)發(fā)指南 – Node.js 連接 MySQL 并進(jìn)行數(shù)據(jù)庫(kù)操作

    通常在NodeJS開(kāi)發(fā)中我們經(jīng)常涉及到操作數(shù)據(jù)庫(kù),尤其是 MySQL ,作為應(yīng)用最為廣泛的開(kāi)源數(shù)據(jù)庫(kù)則成為我們的首選,本篇就來(lái)介紹下如何通過(guò)NodeJS來(lái)操作 MySQL 數(shù)據(jù)庫(kù)。
    2014-07-07
  • 淺談Node框架接入ELK實(shí)踐總結(jié)

    淺談Node框架接入ELK實(shí)踐總結(jié)

    這篇文章主要介紹了淺談Node框架接入ELK實(shí)踐總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02

最新評(píng)論

临沭县| 清徐县| 台南县| 鞍山市| 札达县| 罗甸县| 道真| 英山县| 内黄县| 河南省| 正镶白旗| 隆林| 麻栗坡县| 蓬安县| 磐石市| 平原县| 古田县| 沁水县| 民县| 工布江达县| 大城县| 比如县| 闵行区| 南丰县| 葫芦岛市| 布拖县| 嵩明县| 九龙县| 兴义市| 旬邑县| 康马县| 拜城县| 同江市| 浮梁县| 安阳县| 花垣县| 十堰市| 天台县| 攀枝花市| 上犹县| 连山|