All Projects → rabbitmq → Rabbitmq Event Exchange

rabbitmq / Rabbitmq Event Exchange

Licence: other
Expose broker events as messages

Programming Languages

erlang
1774 projects

Projects that are alternatives of or similar to Rabbitmq Event Exchange

Rabbitmq Delayed Message Exchange
Delayed Messaging for RabbitMQ
Stars: ✭ 982 (+1209.33%)
Mutual labels:  rabbitmq, exchange
Rabbitmq Consistent Hash Exchange
RabbitMQ Consistent Hash Exchange Type
Stars: ✭ 189 (+152%)
Mutual labels:  rabbitmq, exchange
Rabbitmq Message Deduplication
RabbitMQ Plugin for filtering message duplicates
Stars: ✭ 139 (+85.33%)
Mutual labels:  rabbitmq, exchange
Yii2 Rabbitmq
RabbitMQ Extension for Yii2
Stars: ✭ 52 (-30.67%)
Mutual labels:  rabbitmq, exchange
Humusamqp
PHP 7 AMQP library
Stars: ✭ 70 (-6.67%)
Mutual labels:  rabbitmq
Coinexchange
数字货币交易所 (开源免费、基于java、无限扩展、高并发、高可靠性、美观?我尽量吧)
Stars: ✭ 61 (-18.67%)
Mutual labels:  exchange
Bitex
开源交易所系统
Stars: ✭ 61 (-18.67%)
Mutual labels:  exchange
Crypto Trading Bot
Cryptocurrency trading bot in javascript for Bitfinex, Bitmex, Binance, FTX, Bybit ... (public edition)
Stars: ✭ 1,089 (+1352%)
Mutual labels:  exchange
Leyou
传智黑马乐优商城项目后台管理系统
Stars: ✭ 75 (+0%)
Mutual labels:  rabbitmq
Laravel Queue Rabbitmq
RabbitMQ driver for Laravel Queue. Supports Laravel Horizon.
Stars: ✭ 1,175 (+1466.67%)
Mutual labels:  rabbitmq
Gg
监听mysql的binlog,发送消息到nats或rabbitmq
Stars: ✭ 67 (-10.67%)
Mutual labels:  rabbitmq
Rabbitmq Common
Common library used by rabbitmq-server and rabbitmq-erlang-client
Stars: ✭ 62 (-17.33%)
Mutual labels:  rabbitmq
Rabbitmq http api client
RabbitMQ HTTP API client for Ruby
Stars: ✭ 70 (-6.67%)
Mutual labels:  rabbitmq
Python Devops
gathers Python stack for DevOps, these are usually my basic templates use for my implementations, so, feel free to use it and evolve it! Everything is Docker!
Stars: ✭ 61 (-18.67%)
Mutual labels:  rabbitmq
Docker Cluster With Celery And Rabbitmq
Build Docker clusters with Celery and RabbitMQ in 10 minutes
Stars: ✭ 72 (-4%)
Mutual labels:  rabbitmq
Flume Ng Rabbitmq
Flume plugin for RabbitMQ
Stars: ✭ 59 (-21.33%)
Mutual labels:  rabbitmq
Mall Learning
mall学习教程,架构、业务、技术要点全方位解析。mall项目(40k+star)是一套电商系统,使用现阶段主流技术实现。涵盖了SpringBoot 2.3.0、MyBatis 3.4.6、Elasticsearch 7.6.2、RabbitMQ 3.7.15、Redis 5.0、MongoDB 4.2.5、Mysql5.7等技术,采用Docker容器化部署。
Stars: ✭ 10,236 (+13548%)
Mutual labels:  rabbitmq
Transporter
Sync data between persistence engines, like ETL only not stodgy
Stars: ✭ 1,175 (+1466.67%)
Mutual labels:  rabbitmq
Rabbitmq Server
Open source RabbitMQ: core server and tier 1 (built-in) plugins
Stars: ✭ 9,064 (+11985.33%)
Mutual labels:  rabbitmq
Docker Magento Mutagen
Mage2click Docker-based development environment for Magento with mutagen.io sync for files on macOS
Stars: ✭ 64 (-14.67%)
Mutual labels:  rabbitmq

RabbitMQ Event Exchange

This was migrated to https://github.com/rabbitmq/rabbitmq-server

This repository has been moved to the main unified RabbitMQ "monorepo", including all open issues. You can find the source under /deps/rabbitmq_event_exchange. All issues have been transferred.

Overview

This plugin exposes the internal RabbitMQ event mechanism as messages that clients can consume. It's useful if you want to keep track of certain events, e.g. when queues, exchanges, bindings, users, connections, channels are created and deleted. This plugin filters out stats events, so you are almost certainly going to get better results using the management plugin for stats.

How it Works

It declares a topic exchange called 'amq.rabbitmq.event' in the default virtual host. All events are published to this exchange with routing keys like 'exchange.created', 'binding.deleted' etc, so you can subscribe to only the events you're interested in.

The exchange behaves similarly to 'amq.rabbitmq.log': everything gets published there; if you don't trust a user with the information that gets published, don't allow them access.

Installation

With RabbitMQ 3.6.0 or Later

Most recent RabbitMQ version ships with this plugin. As of RabbitMQ 3.6.0 this plugin is included into the RabbitMQ distribution.

Enable it with the following command:

rabbitmq-plugins enable rabbitmq_event_exchange

With RabbitMQ 3.5.x

You can download a pre-built binary of this plugin from the RabbitMQ Community Plugins page.

Then run the following command:

rabbitmq-plugins enable rabbitmq_event_exchange

Event format

Each event has various properties associated with it. These are translated into AMQP 0-9-1 data encoding and inserted in the message headers. The message body is always blank.

Events

So far RabbitMQ and related plugins emit events with the following routing keys:

RabbitMQ Broker

Queue, Exchange and Binding events:

  • queue.deleted
  • queue.created
  • exchange.created
  • exchange.deleted
  • binding.created
  • binding.deleted

Connection and Channel events:

  • connection.created
  • connection.closed
  • channel.created
  • channel.closed

Consumer events:

  • consumer.created
  • consumer.deleted

Policy and Parameter events:

  • policy.set
  • policy.cleared
  • parameter.set
  • parameter.cleared

Virtual host events:

  • vhost.created
  • vhost.deleted
  • vhost.limits.set
  • vhost.limits.cleared

User related events:

  • user.authentication.success
  • user.authentication.failure
  • user.created
  • user.deleted
  • user.password.changed
  • user.password.cleared
  • user.tags.set

Permission events:

  • permission.created
  • permission.deleted
  • topic.permission.created
  • topic.permission.deleted

Alarm events:

  • alarm.set
  • alarm.cleared

Shovel Plugin

Worker events:

  • shovel.worker.status
  • shovel.worker.removed

Federation Plugin

Link events:

  • federation.link.status
  • federation.link.removed

Example

There is a usage example using the Java client in examples/java.

Configuration

  • rabbitmq_event_exchange.vhost: what vhost should the amq.rabbitmq.event exchange be declared in. Default: rabbit.default_vhost (<<"/">>).

Uninstalling

If you want to remove the exchange which this plugin creates, first disable the plugin and restart the broker. Then you can delete the exchange, e.g. with :

rabbitmqctl eval 'rabbit_exchange:delete(rabbit_misc:r(<<"/">>, exchange, <<"amq.rabbitmq.event">>), false).'

Building from Source

Building is no different from building other RabbitMQ plugins.

TL;DR:

git clone https://github.com.com/rabbitmq/rabbitmq-public-umbrella.git umbrella
cd umbrella
make co
make up BRANCH=stable
cd deps
git clone https://github.com/rabbitmq/rabbitmq-event-exchange.git rabbitmq_event_exchange
cd rabbitmq_event_exchange
make dist

License

Released under the Mozilla Public License 2.0, the same as RabbitMQ.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].