Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated to reflect RMQ message model #13

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open

Conversation

mjtice
Copy link

@mjtice mjtice commented Sep 18, 2020

Related to #12, essentially this PR modifies the way messages are published into RMQ. The "official" model for publishing messages is that:

The core idea in the messaging model in RabbitMQ is that the producer never sends any messages directly to a queue. [1]

So I've modified the config to:
a. specify a vhost
b. specify an exchange vs. a queue.

This will allow publishing to a non-default vhost into an exchange. If the exchange doesn't exist one will be declared (direct, durable).

  1. https://www.rabbitmq.com/tutorials/tutorial-three-java.html

* Bumped the graylog image to 3.3
* Increased the version of some of the images
* Updated the services to fall in line with how the offical graylog documentation has them
* Set the container names explicitly
* Mounting the /usr/share/graylog/plugin volume explicitly so the jar can be manually built and copied into place
* Added some logging
* Modified the configuration options.  The 'queue' has been removed in favor of an 'exchange'.  This is because the core model in RMQ is "a producer never sends any messages directly to a queue".
* Added an optional routing_key configuration option.
* Removed the Configuration check.  This is done within the Graylog library itself so I wasn't sure that it was warranted.
* Added a mandatory configuration item of 'vhost'.  This will allow connecting to the non-default vhost.
* Added new configuration options.
* Increased the logging verbosity
* Create a dummy channel so that we can validate an exchange exists.  If it doesn't then we'll use the proper channel to create it, otherwise we just move on.
* Modified the basicPublish to use the routing_key
* Updating.
* Updating ver. to 1.5.0
* Closing the dummy channel after a successful exchange validation.
* Adding some additional logging.
* Setting the RMQ Password config with the IS_PASSWORD attribute.
* I feel this is a pretty big departure from 1.4.1 so I'm going to bump this up a major release.
* Updating latest version to 2.0.0
@mjtice mjtice mentioned this pull request Sep 18, 2020
@romansavrulin
Copy link

romansavrulin commented Nov 1, 2020

Hi! thanks for bringing this in! Can you update build instructions for getting your MR work with 3.2?

@mjtice
Copy link
Author

mjtice commented Nov 2, 2020

Hey @romansavrulin I'm not sure I follow. Is this something in the pom.xml I need to update?

@romansavrulin
Copy link

@mjtice Looks like I've used the wrong word =)) I mean instructions. Anyway I've already found steps to build 2.0 and trying your MR in production.

Thanks for your effort, once again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants