David Ansari
de804d1fa7
Support publishing AMQP 1.0 to Event Exchange
...
## What?
Prior to this commit, the `rabbitmq_event_exchange` internally published
always AMQP 0.9.1 messages to the `amq.rabbitmq.event` topic exchange.
This commit allows users to configure the plugin to publish AMQP 1.0
messages instead.
## Why?
Prior to this commit, when an AMQP 1.0 client consumed events,
event properties that are lists were omitted. For example property
`client_properties` of event `connection.created` or property
`arguments` of event `queue.created` were omitted because of the following sequence:
1. The event exchange plugins listens for all kind of internal events.
2. The event exchange plugin re-publishes all events as AMQP 0.9.1 message to the event exchange.
3. Later, when an AMQP 1.0 client consumes this message, the broker must translate the message from AMQP 0.9.1 to AMQP 1.0.
4. This translation follows the rules outlined in https://www.rabbitmq.com/docs/conversions#amqpl-amqp
5. Specifically, in this table the row before the last one describes the rule we're hitting here. It says that if the AMQP 0.9.1
header value is not an `x-` prefixed header and its value is an array or table, then this header is not converted.
That's because AMQP 1.0 application-properties must be simple types as mandated in https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-application-properties
## How?
The user can configure the plugin as follows to have the plugin
internally publish AMQP 1.0 messages:
```
event_exchange.protocol = amqp_1_0
```
To support complex types such as lists, the plugin sets all event
properties as AMQP 1.0 message-annotations. The plugin prefixes all message
annotation keys with `x-opt-` to comply with the AMQP 1.0 spec.
## Alternative Design
An alternative design would have been to format all event properties
e.g. as JSON within the message body. However, this breaks routing on
specific event property values via a headers exchange.
## Documentation
https://github.com/rabbitmq/rabbitmq-website/pull/2129
2024-11-14 12:52:09 +01:00
Michael Klishin
4efb92c3c9
Event exchange: README.md updates
2023-04-15 14:25:18 +04:00
Johan Rhodin
a10c2cd39a
Username needed for rabbit_exchange:delete
2022-04-13 13:03:17 -05:00
dcorbacho
7d029dd5ea
Switch to Mozilla Public License 2.0 (MPL 2.0)
2020-07-12 22:47:07 +01:00
Spring Operator
cb00b95fef
URL Cleanup
...
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).
# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.
* http://blog.listincomprehension.com/search/label/procket (200) with 1 occurrences could not be migrated:
([https](https://blog.listincomprehension.com/search/label/procket ) result ClosedChannelException).
* http://dozzie.jarowit.net/trac/wiki/TOML (200) with 1 occurrences could not be migrated:
([https](https://dozzie.jarowit.net/trac/wiki/TOML ) result SSLHandshakeException).
* http://dozzie.jarowit.net/trac/wiki/subproc (200) with 1 occurrences could not be migrated:
([https](https://dozzie.jarowit.net/trac/wiki/subproc ) result SSLHandshakeException).
* http://e2project.org (200) with 1 occurrences could not be migrated:
([https](https://e2project.org ) result AnnotatedConnectException).
* http://nitrogenproject.com/ (200) with 2 occurrences could not be migrated:
([https](https://nitrogenproject.com/ ) result ConnectTimeoutException).
* http://proper.softlab.ntua.gr (200) with 1 occurrences could not be migrated:
([https](https://proper.softlab.ntua.gr ) result SSLHandshakeException).
* http://yaws.hyber.org (200) with 1 occurrences could not be migrated:
([https](https://yaws.hyber.org ) result AnnotatedConnectException).
* http://choven.ca (503) with 1 occurrences could not be migrated:
([https](https://choven.ca ) result ConnectTimeoutException).
# Fixed URLs
## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.
* http://fixprotocol.org/ (301) with 1 occurrences migrated to:
https://fixtrading.org ([https](https://fixprotocol.org/ ) result SSLHandshakeException).
* http://erldb.org (UnknownHostException) with 1 occurrences migrated to:
https://erldb.org ([https](https://erldb.org ) result UnknownHostException).
## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.
* http://cloudi.org/ with 27 occurrences migrated to:
https://cloudi.org/ ([https](https://cloudi.org/ ) result 200).
* http://erlware.org/ with 1 occurrences migrated to:
https://erlware.org/ ([https](https://erlware.org/ ) result 200).
* http://inaka.github.io/cowboy-trails/ with 1 occurrences migrated to:
https://inaka.github.io/cowboy-trails/ ([https](https://inaka.github.io/cowboy-trails/ ) result 200).
* http://ninenines.eu with 6 occurrences migrated to:
https://ninenines.eu ([https](https://ninenines.eu ) result 200).
* http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html with 1 occurrences migrated to:
https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html ([https](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html ) result 200).
* http://www.actordb.com/ with 2 occurrences migrated to:
https://www.actordb.com/ ([https](https://www.actordb.com/ ) result 200).
* http://www.cs.kent.ac.uk/projects/wrangler/Home.html with 1 occurrences migrated to:
https://www.cs.kent.ac.uk/projects/wrangler/Home.html ([https](https://www.cs.kent.ac.uk/projects/wrangler/Home.html ) result 200).
* http://www.rabbitmq.com/community-plugins.html with 1 occurrences migrated to:
https://www.rabbitmq.com/community-plugins.html ([https](https://www.rabbitmq.com/community-plugins.html ) result 200).
* http://www.rabbitmq.com/plugin-development.html with 1 occurrences migrated to:
https://www.rabbitmq.com/plugin-development.html ([https](https://www.rabbitmq.com/plugin-development.html ) result 200).
* http://www.rebar3.org with 1 occurrences migrated to:
https://www.rebar3.org ([https](https://www.rebar3.org ) result 200).
* http://contributor-covenant.org with 1 occurrences migrated to:
https://contributor-covenant.org ([https](https://contributor-covenant.org ) result 301).
* http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/ ) result 301).
* http://inaka.github.com/apns4erl with 1 occurrences migrated to:
https://inaka.github.com/apns4erl ([https](https://inaka.github.com/apns4erl ) result 301).
* http://inaka.github.com/edis/ with 1 occurrences migrated to:
https://inaka.github.com/edis/ ([https](https://inaka.github.com/edis/ ) result 301).
* http://lasp-lang.org/ with 1 occurrences migrated to:
https://lasp-lang.org/ ([https](https://lasp-lang.org/ ) result 301).
* http://saleyn.github.com/erlexec with 1 occurrences migrated to:
https://saleyn.github.com/erlexec ([https](https://saleyn.github.com/erlexec ) result 301).
* http://www.mozilla.org/MPL/ with 6 occurrences migrated to:
https://www.mozilla.org/MPL/ ([https](https://www.mozilla.org/MPL/ ) result 301).
* http://zhongwencool.github.io/observer_cli with 1 occurrences migrated to:
https://zhongwencool.github.io/observer_cli ([https](https://zhongwencool.github.io/observer_cli ) result 301).
2019-03-20 03:15:07 -05:00
Michael Klishin
b64d9bd781
Merge branch 'stable'
...
Conflicts:
test/system_SUITE.erl
2017-02-23 19:59:50 +03:00
Diana Corbacho
880e8aaf1f
Document alarm events
2017-02-22 16:03:47 +00:00
Michael Klishin
d37d57bb80
Merge branch 'stable'
...
Conflicts:
README.md
2017-02-15 00:40:32 +03:00
Michael Klishin
36918c27d3
Mention that this plugin ships with 3.6.x; underemphasize building from source
2017-02-15 00:36:48 +03:00
Michael Klishin
7817036767
Merge branch 'stable'
...
Conflicts:
README.md
2017-02-15 00:31:09 +03:00
Michael Klishin
ced6fc3286
Cosmetics
2017-02-15 00:30:08 +03:00
Diana Corbacho
470cd5d97a
List topic.permission events
2017-01-15 20:37:30 +00:00
Diana Corbacho
c061bf1f7e
List vhost.limits events
2017-01-12 15:42:43 +01:00
Michael Klishin
b623ea4e9d
Update README.md
2016-10-31 01:44:33 +03:00
Michael Klishin
984301f87b
Update README.md
2016-02-04 03:13:19 +03:00
Michael Klishin
e10b8e135f
Update README.md
2015-12-27 17:43:45 +03:00
Michael Klishin
96338ec8a2
Update README.md
2015-12-27 17:42:41 +03:00
Michael Klishin
8364c51ec7
Update README
2015-05-01 18:33:20 +03:00
Simon MacMullen
559e5b7e97
Backticks for nicer formatting.
2014-07-07 12:56:10 +01:00
Simon MacMullen
d00cd01293
Tweak language, add parameter.cleared.
2014-07-07 12:54:34 +01:00
Alvaro Videla
60414785ef
lists emitted events
2014-07-07 13:47:17 +02:00
Simon MacMullen
a3122af75f
Add a link, remove binaries.
2014-04-10 14:31:39 +01:00
Simon MacMullen
5e125fb824
Add binary for 3.3.x.
2014-03-12 11:42:12 +00:00
Simon MacMullen
ea441ba5d7
Mention binary.
2014-02-06 12:48:57 +00:00
Simon MacMullen
5f58b02f90
Initial commit
2014-02-06 12:40:35 +00:00