[Artemis] - Can last value queue be sent to multiple consumers?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[Artemis] - Can last value queue be sent to multiple consumers?

Lionel van den Berg
Hi,

I'm currently using activemq and now looking into Artemis. One of the
interest features I see is the is the last-value queue option. However what
I want to use it for is for regularly updating data and not so regular
updating data where the last value is always the only interesting value,
but where that data is interesting to multiple consumers.

A bit more on my design thought in case I've missed another better
solution. I have many workstations that connect, disconnect and change user
role. They all use a sub-set of the same data that I want to publish to
dedicated queues (last value) or topics. When a workstation connects, I
want it to be able to get the most recent value immediately. I then want
them all to be receiving updates as they happen. I can solve it through
triggering a publish in the software when a new workstation connects, but
if the messaging system can help me then that is better.

Thanks

Lionel.
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis] - Can last value queue be sent to multiple consumers?

Justin Bertram
What client protocol/API are you going to be using?

I think you could accomplish what you're after by using a multicast address
with multiple last-value queues which represent all your workstations.  How
you access those will depend on what protocol/API you decide to use.


Justin

On Fri, Aug 11, 2017 at 5:13 AM, Lionel van den Berg <[hidden email]>
wrote:

> Hi,
>
> I'm currently using activemq and now looking into Artemis. One of the
> interest features I see is the is the last-value queue option. However what
> I want to use it for is for regularly updating data and not so regular
> updating data where the last value is always the only interesting value,
> but where that data is interesting to multiple consumers.
>
> A bit more on my design thought in case I've missed another better
> solution. I have many workstations that connect, disconnect and change user
> role. They all use a sub-set of the same data that I want to publish to
> dedicated queues (last value) or topics. When a workstation connects, I
> want it to be able to get the most recent value immediately. I then want
> them all to be receiving updates as they happen. I can solve it through
> triggering a publish in the software when a new workstation connects, but
> if the messaging system can help me then that is better.
>
> Thanks
>
> Lionel.
>
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis] - Can last value queue be sent to multiple consumers?

Lionel van den Berg
I can be flexible on the protocol. Currently we are using openwire.

For the option of a multicast address, is this an activemq configuration or
network configuration? OK, it's in activemq and there is some
documentation, I'll get to ready. At first glance it seems there are some
limitations, but it looks worth my time to understand how it would work.


On 13 August 2017 at 07:05, Justin Bertram <[hidden email]> wrote:

> What client protocol/API are you going to be using?
>
> I think you could accomplish what you're after by using a multicast address
> with multiple last-value queues which represent all your workstations.  How
> you access those will depend on what protocol/API you decide to use.
>
>
> Justin
>
> On Fri, Aug 11, 2017 at 5:13 AM, Lionel van den Berg <[hidden email]>
> wrote:
>
> > Hi,
> >
> > I'm currently using activemq and now looking into Artemis. One of the
> > interest features I see is the is the last-value queue option. However
> what
> > I want to use it for is for regularly updating data and not so regular
> > updating data where the last value is always the only interesting value,
> > but where that data is interesting to multiple consumers.
> >
> > A bit more on my design thought in case I've missed another better
> > solution. I have many workstations that connect, disconnect and change
> user
> > role. They all use a sub-set of the same data that I want to publish to
> > dedicated queues (last value) or topics. When a workstation connects, I
> > want it to be able to get the most recent value immediately. I then want
> > them all to be receiving updates as they happen. I can solve it through
> > triggering a publish in the software when a new workstation connects, but
> > if the messaging system can help me then that is better.
> >
> > Thanks
> >
> > Lionel.
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis] - Can last value queue be sent to multiple consumers?

Justin Bertram
A multicast address is something you configure on the ActiveMQ Artemis
broker.  See more details in the documentation [1].


Justin

[1] http://activemq.apache.org/artemis/docs/latest/address-model.html

On Sat, Aug 12, 2017 at 5:36 PM, Lionel van den Berg <[hidden email]>
wrote:

> I can be flexible on the protocol. Currently we are using openwire.
>
> For the option of a multicast address, is this an activemq configuration or
> network configuration? OK, it's in activemq and there is some
> documentation, I'll get to ready. At first glance it seems there are some
> limitations, but it looks worth my time to understand how it would work.
>
>
> On 13 August 2017 at 07:05, Justin Bertram <[hidden email]> wrote:
>
> > What client protocol/API are you going to be using?
> >
> > I think you could accomplish what you're after by using a multicast
> address
> > with multiple last-value queues which represent all your workstations.
> How
> > you access those will depend on what protocol/API you decide to use.
> >
> >
> > Justin
> >
> > On Fri, Aug 11, 2017 at 5:13 AM, Lionel van den Berg <[hidden email]>
> > wrote:
> >
> > > Hi,
> > >
> > > I'm currently using activemq and now looking into Artemis. One of the
> > > interest features I see is the is the last-value queue option. However
> > what
> > > I want to use it for is for regularly updating data and not so regular
> > > updating data where the last value is always the only interesting
> value,
> > > but where that data is interesting to multiple consumers.
> > >
> > > A bit more on my design thought in case I've missed another better
> > > solution. I have many workstations that connect, disconnect and change
> > user
> > > role. They all use a sub-set of the same data that I want to publish to
> > > dedicated queues (last value) or topics. When a workstation connects, I
> > > want it to be able to get the most recent value immediately. I then
> want
> > > them all to be receiving updates as they happen. I can solve it through
> > > triggering a publish in the software when a new workstation connects,
> but
> > > if the messaging system can help me then that is better.
> > >
> > > Thanks
> > >
> > > Lionel.
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis] - Can last value queue be sent to multiple consumers?

Lionel van den Berg
One more question, I've read the documentation several times and plan to
implement soon and test some scenarios. Can the multicast work for a client
who is connecting for the first time? Will they immediately get the last
value?

On 13 August 2017 at 09:10, Justin Bertram <[hidden email]> wrote:

> A multicast address is something you configure on the ActiveMQ Artemis
> broker.  See more details in the documentation [1].
>
>
> Justin
>
> [1] http://activemq.apache.org/artemis/docs/latest/address-model.html
>
> On Sat, Aug 12, 2017 at 5:36 PM, Lionel van den Berg <[hidden email]>
> wrote:
>
> > I can be flexible on the protocol. Currently we are using openwire.
> >
> > For the option of a multicast address, is this an activemq configuration
> or
> > network configuration? OK, it's in activemq and there is some
> > documentation, I'll get to ready. At first glance it seems there are some
> > limitations, but it looks worth my time to understand how it would work.
> >
> >
> > On 13 August 2017 at 07:05, Justin Bertram <[hidden email]> wrote:
> >
> > > What client protocol/API are you going to be using?
> > >
> > > I think you could accomplish what you're after by using a multicast
> > address
> > > with multiple last-value queues which represent all your workstations.
> > How
> > > you access those will depend on what protocol/API you decide to use.
> > >
> > >
> > > Justin
> > >
> > > On Fri, Aug 11, 2017 at 5:13 AM, Lionel van den Berg <
> [hidden email]>
> > > wrote:
> > >
> > > > Hi,
> > > >
> > > > I'm currently using activemq and now looking into Artemis. One of the
> > > > interest features I see is the is the last-value queue option.
> However
> > > what
> > > > I want to use it for is for regularly updating data and not so
> regular
> > > > updating data where the last value is always the only interesting
> > value,
> > > > but where that data is interesting to multiple consumers.
> > > >
> > > > A bit more on my design thought in case I've missed another better
> > > > solution. I have many workstations that connect, disconnect and
> change
> > > user
> > > > role. They all use a sub-set of the same data that I want to publish
> to
> > > > dedicated queues (last value) or topics. When a workstation
> connects, I
> > > > want it to be able to get the most recent value immediately. I then
> > want
> > > > them all to be receiving updates as they happen. I can solve it
> through
> > > > triggering a publish in the software when a new workstation connects,
> > but
> > > > if the messaging system can help me then that is better.
> > > >
> > > > Thanks
> > > >
> > > > Lionel.
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis] - Can last value queue be sent to multiple consumers?

jbertram
> Can the multicast work for a client who is connecting for the first time?

I'm not entirely clear on your question here.  Are you talking about using
UDP multicast for server discovery or using a multicast address and/or
queue?


> Will they immediately get the last value?

In a last-value queue the only message for a given value which is stored is
the "last" one received so that will be the one which a client gets when it
connects and begins consuming messages.


Justin

On Sun, Oct 29, 2017 at 5:01 AM, Lionel van den Berg <[hidden email]>
wrote:

> One more question, I've read the documentation several times and plan to
> implement soon and test some scenarios. Can the multicast work for a client
> who is connecting for the first time? Will they immediately get the last
> value?
>
> On 13 August 2017 at 09:10, Justin Bertram <[hidden email]> wrote:
>
> > A multicast address is something you configure on the ActiveMQ Artemis
> > broker.  See more details in the documentation [1].
> >
> >
> > Justin
> >
> > [1] http://activemq.apache.org/artemis/docs/latest/address-model.html
> >
> > On Sat, Aug 12, 2017 at 5:36 PM, Lionel van den Berg <[hidden email]>
> > wrote:
> >
> > > I can be flexible on the protocol. Currently we are using openwire.
> > >
> > > For the option of a multicast address, is this an activemq
> configuration
> > or
> > > network configuration? OK, it's in activemq and there is some
> > > documentation, I'll get to ready. At first glance it seems there are
> some
> > > limitations, but it looks worth my time to understand how it would
> work.
> > >
> > >
> > > On 13 August 2017 at 07:05, Justin Bertram <[hidden email]>
> wrote:
> > >
> > > > What client protocol/API are you going to be using?
> > > >
> > > > I think you could accomplish what you're after by using a multicast
> > > address
> > > > with multiple last-value queues which represent all your
> workstations.
> > > How
> > > > you access those will depend on what protocol/API you decide to use.
> > > >
> > > >
> > > > Justin
> > > >
> > > > On Fri, Aug 11, 2017 at 5:13 AM, Lionel van den Berg <
> > [hidden email]>
> > > > wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > I'm currently using activemq and now looking into Artemis. One of
> the
> > > > > interest features I see is the is the last-value queue option.
> > However
> > > > what
> > > > > I want to use it for is for regularly updating data and not so
> > regular
> > > > > updating data where the last value is always the only interesting
> > > value,
> > > > > but where that data is interesting to multiple consumers.
> > > > >
> > > > > A bit more on my design thought in case I've missed another better
> > > > > solution. I have many workstations that connect, disconnect and
> > change
> > > > user
> > > > > role. They all use a sub-set of the same data that I want to
> publish
> > to
> > > > > dedicated queues (last value) or topics. When a workstation
> > connects, I
> > > > > want it to be able to get the most recent value immediately. I then
> > > want
> > > > > them all to be receiving updates as they happen. I can solve it
> > through
> > > > > triggering a publish in the software when a new workstation
> connects,
> > > but
> > > > > if the messaging system can help me then that is better.
> > > > >
> > > > > Thanks
> > > > >
> > > > > Lionel.
> > > > >
> > > >
> > >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: [Artemis] - Can last value queue be sent to multiple consumers?

Martyn Taylor
Hi Lionel,

If I understand your use case correctly, then MQTT has a feature that does
exactly what you're trying to achieve.  Retained messages.

"When a workstation connects, I want it to be able to get the most recent
value immediately."

A producer can mark a message as "retain".  The broker keeps hold of this
message.  When a new subscriber arrives the broker sends this message
first.  Each address can have at any one time a single retain message.

"I then want them all to be receiving updates as they happen"

Subsequent messages sent to the subscription address are then forward to
the new subscriber as usual.

On Sun, Oct 29, 2017 at 8:44 PM, Justin Bertram <[hidden email]> wrote:

> > Can the multicast work for a client who is connecting for the first time?
>
> I'm not entirely clear on your question here.  Are you talking about using
> UDP multicast for server discovery or using a multicast address and/or
> queue?
>
>
> > Will they immediately get the last value?
>
> In a last-value queue the only message for a given value which is stored is
> the "last" one received so that will be the one which a client gets when it
> connects and begins consuming messages.
>
>
> Justin
>
> On Sun, Oct 29, 2017 at 5:01 AM, Lionel van den Berg <[hidden email]>
> wrote:
>
> > One more question, I've read the documentation several times and plan to
> > implement soon and test some scenarios. Can the multicast work for a
> client
> > who is connecting for the first time? Will they immediately get the last
> > value?
> >
> > On 13 August 2017 at 09:10, Justin Bertram <[hidden email]> wrote:
> >
> > > A multicast address is something you configure on the ActiveMQ Artemis
> > > broker.  See more details in the documentation [1].
> > >
> > >
> > > Justin
> > >
> > > [1] http://activemq.apache.org/artemis/docs/latest/address-model.html
> > >
> > > On Sat, Aug 12, 2017 at 5:36 PM, Lionel van den Berg <
> [hidden email]>
> > > wrote:
> > >
> > > > I can be flexible on the protocol. Currently we are using openwire.
> > > >
> > > > For the option of a multicast address, is this an activemq
> > configuration
> > > or
> > > > network configuration? OK, it's in activemq and there is some
> > > > documentation, I'll get to ready. At first glance it seems there are
> > some
> > > > limitations, but it looks worth my time to understand how it would
> > work.
> > > >
> > > >
> > > > On 13 August 2017 at 07:05, Justin Bertram <[hidden email]>
> > wrote:
> > > >
> > > > > What client protocol/API are you going to be using?
> > > > >
> > > > > I think you could accomplish what you're after by using a multicast
> > > > address
> > > > > with multiple last-value queues which represent all your
> > workstations.
> > > > How
> > > > > you access those will depend on what protocol/API you decide to
> use.
> > > > >
> > > > >
> > > > > Justin
> > > > >
> > > > > On Fri, Aug 11, 2017 at 5:13 AM, Lionel van den Berg <
> > > [hidden email]>
> > > > > wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > I'm currently using activemq and now looking into Artemis. One of
> > the
> > > > > > interest features I see is the is the last-value queue option.
> > > However
> > > > > what
> > > > > > I want to use it for is for regularly updating data and not so
> > > regular
> > > > > > updating data where the last value is always the only interesting
> > > > value,
> > > > > > but where that data is interesting to multiple consumers.
> > > > > >
> > > > > > A bit more on my design thought in case I've missed another
> better
> > > > > > solution. I have many workstations that connect, disconnect and
> > > change
> > > > > user
> > > > > > role. They all use a sub-set of the same data that I want to
> > publish
> > > to
> > > > > > dedicated queues (last value) or topics. When a workstation
> > > connects, I
> > > > > > want it to be able to get the most recent value immediately. I
> then
> > > > want
> > > > > > them all to be receiving updates as they happen. I can solve it
> > > through
> > > > > > triggering a publish in the software when a new workstation
> > connects,
> > > > but
> > > > > > if the messaging system can help me then that is better.
> > > > > >
> > > > > > Thanks
> > > > > >
> > > > > > Lionel.
> > > > > >
> > > > >
> > > >
> > >
> >
>