环境准备
version: "3" services: vmstorage: image: victoriametrics/vmstorage ports: - 8482:8482 - 8400:8482 - 8401:8482 volumes: - ./strgdata:/storage command: - "--storageDataPath=/storage" vmagent: image: victoriametrics/vmagent volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml ports: - 8429:8429 command: - -promscrape.config=/etc/prometheus/prometheus.yml - -remoteWrite.url=http://vminsert:8480/insert/1/prometheus vminsert: image: victoriametrics/vminsert command: - "--storageNode=vmstorage:8400" ports: - 8480:8480 vmselect: image: victoriametrics/vmselect command: - "--storageNode=vmstorage:8401" ports: - 8481:8481 grafana: image: grafana/grafana ports: - 3000:3000 rabbitmq: build: ./ hostname: 1-rabbit ports: - "5672:5672" - "15672:15672" - "15692:15692" environment: - "RABBITMQ_DEFAULT_USER=dalong" - "RABBITMQ_DEFAULT_PASS=dalong" - "RABBITMQ_NODENAME=rabbit@1-rabbit" rabbitmq2: build: ./ hostname: 2-rabbit ports: - "5674:5672" - "15674:15672"
- "15694:15692" environment: - "RABBITMQ_DEFAULT_USER=dalong" - "RABBITMQ_DEFAULT_PASS=dalong" - "RABBITMQ_NODENAME=rabbit@2-rabbit" amqpproxy: image: dalongrong/amqpproxy:master ports: - "5673:5673" environment: - "AMQP_URL=amqp://rabbitmq2:5672"
global: scrape_interval: 5s evaluation_interval: 5s scrape_configs: - job_name: 'rabbitmq-without' static_configs: - targets: ['rabbitmq:15692'] - job_name: 'rabbitmq-with-amqproxy' static_configs: - targets: ['rabbitmq2:15692'
FROM rabbitmq:3.8.5-management-alpine RUN rabbitmq-plugins enable --offline rabbitmq_prometheus
environment: - "AMQP_URL=amqp://rabbitmq2:5672" 代码集成使用
{ "name": "app", "version": "1.0.0", "main": "index.js", "license": "MIT", "dependencies": { "amqplib": "^0.5.6" }, "scripts": { "mq:start1": "node app.js", "mq:start2": "node app2.js", "run-all":"npm-run-all --parallel mq:**" }, "devDependencies": { "npm-run-all": "^4.1.5" } } app.js 代码 var q = 'tasks'; var open = require('amqplib').connect('amqp://dalong:dalong@127.0.0.1:5672'); // Publisher open.then(function(conn) { return conn.createChannel(); }).then(function(ch) { ch.assertQueue(q).then(function(ok) { for (var i = 0; i <50000;i++){ ch.sendToQueue(q, Buffer.from('something to do')); } }); }).catch(console.warn); // Consumer open.then(function(conn) { return conn.createChannel(); }).then(function(ch) { return ch.assertQueue(q).then(function(ok) { return ch.consume(q, function(msg) { if (msg !== null) { console.log(msg.content.toString()); ch.ack(msg); } }); }); }).catch(console.warn); 说明具体的使用和普通rabbitmq 链接是一样的,具体amqproxy的优点可以参考上边的链接,关于promehteus 的集成使用,可以直接添加官方的fdashboard |
|
来自: 昵称70680357 > 《待分类》