A bounded queue is a queue with a limited capacity. When the bounded queue is full, no more items can be put into the queue until some items are taken out.
To turn a Hazelcast distributed queue into a bounded queue, set the capacity limit with the
max-size property. You can set the
max-size property in the configuration, as shown below.
max-size specifies the maximum size of the queue. Once the queue size reaches this value,
put operations will be blocked until the queue size goes below
max-size, which happens when a consumer removes items from the queue.
Let's set 10 as the maximum size of our example queue in Creating an Example Queue.
<hazelcast> ... <queue name="queue"> <max-size>10</max-size> </queue> ... </hazelcast>
When the producer is started, ten items are put into the queue and then the queue will not allow more
put operations. When the consumer is started, it will remove items from the queue. This means that the producer can
put more items into the queue until there are ten items in the queue again, at which point the
put operation again becomes blocked.
In this example code, the producer is five times faster than the consumer. It will effectively always be waiting for the consumer to remove items before it can put more on the queue. For this example code, if maximum throughput is the goal, it would be a good option to start multiple consumers to prevent the queue from filling up.