Yeah, I was thinking more multiple addresses and don't use selectors. Using
selectors on a topic where there maybe lots of pages messages is always
going to be problematic.

On Wed, 18 Sep 2019, 16:40 , <[email protected]> wrote:

> That would be same issue if consumers shared a queue and was a consumer
> side filter, that by consumer would pas lots data. he would hit same issue.
>
>
>
>
> Get Outlook for Android
>
>
>
>
>
>
>
> On Wed, Sep 18, 2019 at 1:36 PM +0100, "Andy Taylor" <
> [email protected]> wrote:
>
>
>
>
>
>
>
>
>
>
> If you are dealing with subscribers not being connected for very long
> periods of time I would question your choice of using topics in the first
> place. Maybe use a different topology, 1 address/queue per consumer for
> instance.
>
> On Wed, 18 Sep 2019 at 08:50, yw yw  wrote:
>
> > Thanks for the reply. I'm not asking to remove critical check. As you
> said,
> > we can just increase timeout or log the failure. Our concern is the
> second
> > problem with starvation on other queues. It's unacceptable for near
> > real-time processing of other subscribers to the topic.
> >
> >  于2019年9月18日周三 上午12:58写道:
> >
> > > So the critical check is there to avoid issues where stuff takes too
> long
> > > on the critical path. It was off the back of some major production
> > issues.
> > >
> > >
> > >
> > >
> > > I would be hesitant to relax / remove it.
> > >
> > >
> > >
> > >
> > > If you know in your broker things take longer you could always
> configure
> > > to increase the critical timeout.
> > >
> > >
> > >
> > >
> > > Get Outlook for Android
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > On Tue, Sep 17, 2019 at 11:00 AM +0100, "yw yw"
> > wrote:
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > Hi, All
> > >
> > > There is something about pageIterator scanning that haunts us over a
> long
> > > period of time since we use artemis.
> > >
> > > The use case is common:
> > >
> > > E.g. There is a topic with two queues: q1 and q2. Due to some reasons
> > such
> > > as a bug in the business logic, the clients stop from receiving from q1
> > and
> > > following messages sent to the topic are not routed to q1 again(the
> > clients
> > > don't want to receive messages until they get back online). After a few
> > > days, the clients are backup starting to consume messages from the
> queue.
> > > At this point, calling hasNext will scan page files until finding
> > matching
> > > messages(actually no messages matched before this point and dozens of
> GB
> > > page files are written during business down time). This will lead to
> some
> > > problems:
> > > 1. Critical analyzer will be triggered, i.e. CRITICAL_CHECK_DEPAGE. In
> > our
> > > setup, the process would be terminated.
> > > 2. hasNext might be called in queue's executor, as we know, the
> executor
> > is
> > > shared by all the queues binding to the address, this would cause
> > > starvation on other queues resulting no messages delivered lasting for
> a
> > > few minutes.
> > >
> > > One of the alternative approach i can think is to add some timeout for
> > > hasNext/next. If timeout happens, it will be scheduled later to avoid
> > > problems above mentioned. Does anybody have any opinion on this?
> > >
> > > Thanks in advance.
> > >
> > >
> > >
> > >
> > >
> > >
> >
>
>
>
>
>
>

Reply via email to