> On 28 Jul 2016, at 10:17 PM, Dmitry Mescheryakov <dmescherya...@mirantis.com> > wrote: > > > > 2016-07-27 2:20 GMT+03:00 Sam Morrison <sorri...@gmail.com > <mailto:sorri...@gmail.com>>: > >> On 27 Jul 2016, at 4:05 AM, Dmitry Mescheryakov <dmescherya...@mirantis.com >> <mailto:dmescherya...@mirantis.com>> wrote: >> >> >> >> 2016-07-26 2:15 GMT+03:00 Sam Morrison <sorri...@gmail.com >> <mailto:sorri...@gmail.com>>: >> The queue TTL happens on reply queues and fanout queues. I don’t think it >> should happen on fanout queues. They should auto delete. I can understand >> the reason for having them on reply queues though so maybe that would be a >> way to forward? >> >> Or am I missing something and it is needed on fanout queues too? >> >> I would say we do need fanout queues to expire for the very same reason we >> want reply queues to expire instead of auto delete. In case of broken >> connection, the expiration provides client time to reconnect and continue >> consuming from the queue. In case of auto-delete queues, it was a frequent >> case that RabbitMQ deleted the queue before client reconnects ... along with >> all non-consumed messages in it. > > But in the case of fanout queues, if there is a broken connection can’t the > service just recreate the queue if it doesn’t exist? I guess that means it > needs to store the state of what the queue name is though? > > Yes they could loose messages directed at them but all the services I know > that consume on fanout queues have a re sync functionality for this very case. > > If the connection is broken will oslo messaging know how to connect to the > same queue again anyway? I would’ve thought it would handle the disconnect > and then reconnect, either with the same queue name or a new queue all > together? > > oslo.messaging handles reconnect perfectly - on connect it just > unconditionally declares the queue and starts consuming from it. If queue > already existed, the declaration operation will just be ignored by RabbitMQ. > > For your earlier point that services re sync and hence messages lost in > fanout are not that important, I can't comment on that. But after some > thinking I do agree that having big expiration time for fanouts is > non-adequate for big deployments anyway. How about we split > rabbit_transient_queues_ttl into two parameters - one for reply queue and one > for fanout ones? In that case people concerned with messages piling up in > fanouts might set it to 1, which will virtually make these queues behave like > auto-delete ones (though I strongly recommend to leave it at least at 20 > seconds, to give service a chance to reconnect).
Hi Dmitry, Splitting out the config options would be great, I think that would solve our issues. Thanks, Sam > > Thanks, > > Dmitry > > > > Sam
_______________________________________________ OpenStack-operators mailing list OpenStack-operators@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators