Comments (2)
It appears as if IfUnused and IfEmpty are ignored for streams - https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbit/src/rabbit_stream_queue.erl#L197.
Regarding user experience. The numbers shown have different source depending on the queue type. Classic queues go thru process dictionary for all ch records and use the same mechanics for implementing IfUnused. Quorum queues show consumers via queue_metrics and ets:lookup_element. Stream queue uses yet another way of getting consumer count - it enumerates queue nodes and does rpc.
So regarding guarantees and behaviours I have these question:
- does it make sense to let streams respect IfUnused/IfEmpty?
- does it make sense to use the same mechanics from info/2 that used to generate values displayed to user to implement IfUnused/IfEmpty for streams and quorum queues?
- Quorum queues go to metrics for consumer counts and streams enumerate nodes and also doing ets calls. Shouldn't they look the same?
from rabbitmq-server.
does it make sense to let streams respect IfUnused/IfEmpty?
I don't think so, specially if they are just ignored at the moment. Streams are expected to have data all the time when, at least, one message is published. Perhaps it could support if-unused
, I don't have a strong opinion on that regard. My intention with this issue was to focus primarily on Quorum Queues.
I can't comment on your other questions since I have little-to-none context on those areas 🙃
from rabbitmq-server.
Related Issues (20)
- OAuth 2: cacertfile is still a mandatory field on Erlang 26 HOT 1
- After upgrading to 3.13, management interface shows 500 for /api/deprecated-features/used HOT 6
- Path prefix not working on v3.13
- Support to define event_exchange.queue_type to be able to use quorum queue for event_exchange plugin HOT 1
- `rabbitmq_auth_mechanism_ssl` usage docs seems invalid HOT 2
- auth_oauth2.jwks_url is always verified HOT 1
- Add more useful data into rabbitmq_cluster_vhost_status metric
- 4.x: investigate if management plugin's TLS options key can be renamed to ssl_options for consistency HOT 6
- Deprecate `queue_master_locator` HOT 1
- x-death count not incremented when message expired HOT 10
- Prevent excessive logging in certain failure scenarios HOT 3
- RabbitMQ 3.13.0 nodes with peer discovery enabled fails to start in an IPv6-only environment HOT 24
- AMQP 1.0 Shovels: expose additional capabilities needed for successful connection to some AMQP 1.0 brokers HOT 3
- Khepri: timeouts when one of the nodes stops responding
- RabbitMQ 3.13.0 nodes with Consul peer discovery enabled fails to form a cluster HOT 1
- Odd characters in example file deps/rabbit/docs/rabbitmq.conf.example l.801 HOT 1
- Popup does not close in Managemet UI
- A `rabbitmq-queues grow` equivalent is missing for streams HOT 2
- Channel Metrics Cardinality - /metrics stops working HOT 3
- Restarting crashed queue with function_clause reason after update to RabbitMQ 3.13
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 rabbitmq-server.