Erlang Mailing Lists

Author Message

<  RabbitMQ mailing list  ~  a possibility of AMQP/RabbitMQ extension?

goryachev
Posted: Thu Nov 05, 2009 2:36 pm Reply with quote
User Joined: 15 Aug 2007 Posts: 16 Location: Moscow, Russia
Hello, everyone!

I am very new to AMQP/RabbitMQ and have several (well, mostly
newbie) questions:

0. is it safe to extend AMQP for customer needs (in such way as XMPP
permits to do)?

1. is it possible to use AMQP broker as a sort of key-value storage
instance? Or it seems to be a really bad idea which doesn't match
AMQP pattern?

Thanks.


--
Igor Goryachev E-Mail/Jabber: igor@goryachev.org

_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss@lists.rabbitmq.com
http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Post received from mailinglist
View user's profile Send private message
Guest
Posted: Thu Nov 05, 2009 2:59 pm Reply with quote
Guest
On Thu, Nov 5, 2009 at 2:35 PM, Igor Goryachev <igor@goryachev.org> wrote:
> Hello, everyone!
>
> I am very new to AMQP/RabbitMQ and have several (well, mostly
> newbie) questions:
>
> 0. is it safe to extend AMQP for customer needs (in such way as XMPP
> permits to do)?

I am not sure about XMPP permits *but*

1. AMQP is 'programmable' so you can set up lots of messaging
applications by customer need.

2. You can write custom routers aka "exchanges" eg for content based routing

3. RabbitMQ supports plugins, see eg
http://www.lshift.net/blog/2009/10/26/http-routing-with-rabbitmq-and-trapeze



> 1. is it possible to use AMQP broker as a sort of key-value storage
> instance? Or it seems to be a really bad idea which doesn't match
> AMQP pattern?

AMQP has destructive reads ie. 'get message', whereas with a long term
store you want non-destructive reads. So, currently I would say No to
that. It's an interesting idea though.

alexis




>
> --
>
goryachev
Posted: Thu Nov 05, 2009 4:28 pm Reply with quote
User Joined: 15 Aug 2007 Posts: 16 Location: Moscow, Russia
Alexis Richardson <alexis.richardson@gmail.com> writes:

> 1. AMQP is 'programmable' so you can set up lots of messaging
> applications by customer need.

BTW, is it safe to implement i.e. custom methods or some other 'core'
features?

> 2. You can write custom routers aka "exchanges" eg for content based routing
>
> 3. RabbitMQ supports plugins, see eg
> http://www.lshift.net/blog/2009/10/26/http-routing-with-rabbitmq-and-trapeze

Ok. I have already played a bit with rabbit's plugin API inside
'umbrella' development environment. It seems to be fine enough and
really works for me.

> AMQP has destructive reads ie. 'get message', whereas with a long term
> store you want non-destructive reads. So, currently I would say No to
> that. It's an interesting idea though.

Well, then we will use real kv-database for this kind of task (at least
for now) and continue using rabbitmq as our middleware service.

Thank you very much for such a quick answer!


--
Igor Goryachev E-Mail/Jabber: igor@goryachev.org

_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss@lists.rabbitmq.com
http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Post received from mailinglist
View user's profile Send private message
Guest
Posted: Thu Nov 05, 2009 8:40 pm Reply with quote
Guest
On Thu, Nov 5, 2009 at 4:28 PM, Igor Goryachev <igor@goryachev.org> wrote:
> Alexis Richardson <alexis.richardson@gmail.com> writes:
>
>> 1. AMQP is 'programmable' so you can set up lots of messaging
>> applications by customer need.
>
> BTW, is it safe to implement i.e. custom methods or some other 'core'
> features?

I'm not sure what you mean - do you mean modifying the source of the
broker? Or something else?


>> 2. You can write custom routers aka "exchanges" eg for content based routing
>>
>> 3. RabbitMQ supports plugins, see eg
>> http://www.lshift.net/blog/2009/10/26/http-routing-with-rabbitmq-and-trapeze
>
> Ok. I have already played a bit with rabbit's plugin API inside
> 'umbrella' development environment. It seems to be fine enough and
> really works for me.
>
>> AMQP has destructive reads ie. 'get message', whereas with a long term
>> store you want non-destructive reads.
goryachev
Posted: Fri Nov 06, 2009 8:58 am Reply with quote
User Joined: 15 Aug 2007 Posts: 16 Location: Moscow, Russia
Alexis Richardson <alexis.richardson@gmail.com> writes:

>> BTW, is it safe to implement i.e. custom methods or some other 'core'
>> features?
>
> I'm not sure what you mean - do you mean modifying the source of the
> broker? Or something else?

I meant modifying AMQP proto itself (then of course modifying broker and
client source core accordingly).


Well, yet another dummy question. Is it possible to get particular
message from the queue? I.e. there three messages waiting in queue,
'message_a', 'message_b' and 'message_c'. Is there any chance to get
'message_b' while not even touching other messages? I guess it is
impossible, but I want to get sure.


--
Igor Goryachev E-Mail/Jabber: igor@goryachev.org

_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss@lists.rabbitmq.com
http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Post received from mailinglist
View user's profile Send private message
Guest
Posted: Fri Nov 06, 2009 9:11 am Reply with quote
Guest
Igor,

You can get at the messages, but not in a particularly nice or scalable way. If you setup a consumer on the queue without auto-acknowledgment, then you'll receive all of the messages. If you then only acknowledge message B, and then close the channel, the messages will be returned to the queue (and redelivered to other consumers). This probably isn't an approach that is recommended however, since it starts to get very messy once you break beyond simplified examples such as the one you've just posted.

Paul.

On Fri, Nov 6, 2009 at 8:58 AM, Igor Goryachev <igor@goryachev.org (igor@goryachev.org)> wrote:
Quote:
Alexis Richardson <alexis.richardson@gmail.com (alexis.richardson@gmail.com)> writes:


>> BTW, is it safe to implement i.e. custom methods or some other 'core'
>> features?
>
> I'm not sure what you mean - do you mean modifying the source of the
> broker?
Guest
Posted: Fri Nov 06, 2009 10:29 am Reply with quote
Guest
Igor,

Several people have asked about browsing queues, and being able to
read or extract selected messages out of order.

It's an interesting feature because it represents a different way of
thinking about messaging queues: as containers for resources, instead
of as streams of values. It's not obvious whether this difference is
always fundamental.

As you can see from Paul's post below, our current implementation,
which follows the spirit of AMQP as well as the letter, forces you to
take a streams based view. This leads to a number of contortions if
you want to reach into the middle of the stream without disrupting
other consumers.

If you have any thoughts on this let us know.

Re your other question about 'modifying AMQP proto': I think the
safest approach is to say a bit more about what you would like to do,
on this list. We can advise. I would not want to discourage anyone
from messing with the code or the innards of AMQP... but it's 'at your
own risk' Wink

alexis





On Fri, Nov 6, 2009 at 9:11 AM, Paul Jones <pauljones23@gmail.com> wrote:
> Igor,
>
> You can get at the messages, but not in a particularly nice or scalable way.
> If you setup a consumer on the queue without auto-acknowledgment, then
> you'll receive all of the messages. If you then only acknowledge message B,
> and then close the channel, the messages will be returned to the queue (and
> redelivered to other consumers). This probably isn't an approach that is
> recommended however, since it starts to get very messy once you break beyond
> simplified examples such as the one you've just posted.
>
> Paul.
>
> On Fri, Nov 6, 2009 at 8:58 AM, Igor Goryachev <igor@goryachev.org> wrote:
>>
>> Alexis Richardson <alexis.richardson@gmail.com> writes:
>>
>> >> BTW, is it safe to implement i.e. custom methods or some other 'core'
>> >> features?
>> >
>> > I'm not sure what you mean - do you mean modifying the source of the
>> > broker?

Display posts from previous:  

All times are GMT
Page 1 of 1
This forum is locked: you cannot post, reply to, or edit topics.

Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum