Comments (4)
Hutch, Bunny and RabbitMQ absolutely do not have this limitation. Multiple consumers on a shared queue become competing consumers. Assuming there are several pods running Hutch consumers and enough messages ready for delivery, you will get parallel (uncoordinated) processing between them.
Please see tutorial 2 and these RabbitMQ guides: Queues, Consumers, Concepts Overview.
from hutch.
Not sure if this helps, but might be useful for context.
In the past (please see context below), we had to configure the bit in tutorial 2 about "Fair dispatch", and we ended up setting channel_prefetch
to 16. The trade-off of having queue sizes grow during spikes was acceptable to us.
We were working with "heavy" (long-running) consumers, and usually one of the consumers ended up too busy, which sounds similar to your situation.
from hutch.
Thanks for the feedback. We'll dig in now.
from hutch.
The prefetch value has throughput and (client side) concurrency effects. See Consumer Acknowledgement Modes, Prefetch and Throughput and this old but still relevant blog post.
For a project such as Hutch, the value of 1
is not great but most predictable (no unexpected natural race conditions between consumers). In the end some projects such as Spring AMQP concluded that the default of 1
was a massive net negative and changed the default to something like 128
(the exact value is not very important). We'd consider doing the same for Hutch if necessary.
from hutch.
Related Issues (20)
- Enable Lazy mode for queues HOT 4
- Precondition fails for existing queue due to new queue options HOT 2
- Backward compatibility with old existing queues broken with introduction of queue types HOT 5
- Hutch URI supported? HOT 3
- Hutch.publish returning (undefined method `publish' for nil:NilClass) HOT 4
- Handing database connection timeouts HOT 1
- Run only some consumers HOT 4
- Starting `hutch` consumers fails within Rails Engine.
- Delivery Acknowledgement Timeout makes hutch process stuck HOT 2
- Cut a new release HOT 1
- hutch installs bunny but complains about missing march_hare on jruby HOT 5
- Support for activesupport > 7 HOT 2
- Concern regarding Consumer's metheod "consume"
- Can't find consumers in app/consumers when running with Rails 7 HOT 1
- Handling error with max-retry uses dead letter policies
- Reject makes hutch process stuck
- Consumer to be auto-ack False
- Could we have a release to address already fixed deprecation warnings?
- NameError (uninitialized constant Hutch::Broker::Bunny) on JRuby HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hutch.