I was testing RabbitMQ using a script, I added 500,000 bindings to different routing keys on an exchange. Only when I try to enter the rabbit's UI - the exchange page, the page fails to load and the rabbit server crashes.
Is this a known issue? Is it a memory problem?
Is this a known issue? Is it a memory problem?
The answers are "No" and "Maybe".
You haven't given basic information like RabbitMQ, Erlang and operating system version. I'm assuming you have a script to add that many bindings. If you'd like to share the required information on the mailing list the team may be able to help out.
NOTE: the RabbitMQ team monitors the rabbitmq-users mailing list and only sometimes answers questions on StackOverflow.
Related
I came across an interesting subject when reading the book "RabbitMQ in Action" by Manning. Apparently it's possible to set up consumers to be able to receive all RabbitMQ logging in real time in the consumer.
I read that RabbitMQ publishes logging to an exchange of type topic called amq.rabbitmq.log. Consumers can listen to specific severity levels, for example it can be filtered by setting the routing key to error, warning or info.
My question is; I installed a default RabbitMQ server on my PC, but I couldn't find any exchange called amq.rabbitmq.log. Only one which could be related is amq.rabbitmq.trace, but this one is used for events (events like queue.deleted, queue.created, ...), in other words that one is not what I'm looking for.
Can anyone bring clarification to my questions? Why is the amq.rabbitmq.log exchange not available on a clean RabbitMQ server installation?
citation:
Perhaps when you were listing exchanges using rabbitmqctl you spotted
an exchange called amq.rabbitmq.log whose type is topic. RabbitMQ will
publish its logs to that exchange using the severity level as a
routing key - you'll get error, warning and info. Based on what you
learned from the previous chapters you can create a consumer to
listen to those logs and react accordingly.
You have to enable it. Create the /etc/rabbitmq/rabbitmq.conf file and ensure that this line is present in it:
log.exchange = true
I just grepped the source for the rabbitmq.com website and don't see that setting documented anywhere. If you'd like, file a new issue in that repository and I'll fix it, or open your own PR to do so.
NOTE: the RabbitMQ team monitors the rabbitmq-users mailing list and only sometimes answers questions on StackOverflow.
It is a bit late, but hope it help someone. So far it works for me. The exchange "amq.rabbitmq.log" will be created automatically by the rabbitmq broker itself. The RabbitMQ broker version that I am using is: 3.8.1
add
log.exchange = true
into your rabbitmq.conf file and restart your rabbitmq service.
You will need to restart your rabbitmq service everytime you had updated the rabbitmq.conf file.
open cmd and enter the following in windows:
rabbitmq-service stop
rabbitmq-service install
rabbitmq-service start
rabbitmqctl start_app
Consider a cluster with A and B nodes,I want a solution which meet these requirements:
1) When node A goes down the system continue working properly with node B till node A comes up again
2) Preventing extra network hop when master node is on Node A and client was connected to Node B, so when client publish a message, RAbbitmq route it to Node A i want to pervent this extra network hop
I should write my balancer or any framework (like HA Proxy) exist that can do these requirements?
Your question was recently discussed on the rabbitmq-users mailing list: link.
I recommend reading it.
For question #2, don't worry about the extra hop unless you have proof it causes an issue for you.
NOTE: the RabbitMQ team monitors the rabbitmq-users mailing list and only sometimes answers questions on StackOverflow.
There is a mention of ActiveMQ real time on the apache ActiveMQ site. But, I am unable to locate any builds for download.
Is it in alpha stage? Is there any way I can try it out?
I did see the activeblaze in the apache SVN repo. Is it expected that we check out the code, build and try?
http://activemq.apache.org/activemq-real-time.html
According to this thread on the ActiveMQ user mailing list the project is "mothballed" (i.e. no longer maintained). That thread was back in 2014.
I joined the ActiveMQ project a few years ago, and I've never seen any development on or questions about any "real time" broker variant.
I've searched a lot on Google or directly on Stackoverflow and I know that AMQP's timestamp message property must be filled by the producer.
But I want to know if there is some plugin that writes out on this parameter based on the broker's local timestamp automatic when the message is putted on each queue by a topic exchange.
I'm on a situation that neither producer's nor consumer's timestamps are reliable. Only the broker has a trustworthy watch.
I'm not an Erlang programmer but, if there is no known plugin to do that, I need some help. How could I start to write it myself?
I just need to:
Publish some message by someone who doesn't rely on his local timestamp.
Put this message on each queue mapped on my broker's topic exchange (with it's local timestamp, now I need only this step)
Finally, anyone for whom this message was addressed to is able to get the message and see the exact time this message landed on the broker.
I'm using RabbitMQ 3.3.4, Erlang R16B03, on an Ubuntu's new Amazon AWS machine.
Thanks
First try official Plugin Development Guide. Also look through official and community plugins and their sources. In addition you can always googled any other rabbitmq plugins not listed in lists above. Finally, there are official RabbitMQ mailing list on google groups (replaced http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss).
I'm attempting to set up a pub/sub system. My technical director has suggested using Rabbitmq and STOMP for the project I've been assigned.
In this system I want exchanges to be created on the server side and passed to the user to subscribe to. I want a user to subscribe to an exchange and receive information as it becomes available. I do not want the client to have the ability to subscribe to arbitrary exchanges (or routing keys for topic exchanges, I'm not sure what system I want to use yet).
For example, if someone works for a company widgetInk, when they logged in to our website they would receive a connection to the widgetInk.whatever exchange and AllUsers.whatever exchange, but that's it. if the Client side attempted to subscribe to something else they'd get an error.
I've gone through all of the RabbitMQ tutorials and I've looked through their how to section. I found this basic article on access control, but having read it three times now I still don't know if rabbitmq is a good fit for my requirements.
Can Rabbitmq be configured for my requirements? What resources can I use to learn about Rabbitmq's permission system? Has anyone build or used a system like this? Would it be in my best interest to switch to ZeroMQ or ActiveMQ?
I'd like to mention another platform you might use: Autobahn (Open-Source) or WebMQ (based on Autobahn).
WebMQ provides these features (besides a lot of other out of the box):
PubSub over WebSocket (WAMP)
Authentication of client sessions (WAMP-CRA)
fine-grained configurable authorization for topics
If you want to go the Open-source/build-your-own road, here are some tutorials. If you want an integrated, commercially supported product with Web UI for configuration/administration, please get in contact.
Disclaimer: I am creator of Autobahn/WAMP and work for Tavendo.