Erlang/OTP Forums

Author Message

<  RabbitMQ mailing list  ~  Just publishing messages causes rabbit_writer:mainloop to ha

Guest
Posted: Mon Apr 14, 2008 3:21 pm Reply with quote
Guest
I tried to send messages sequentially to a single rabbitmq server running on 127.0.0.1.
0x6e6562
Posted: Mon Apr 14, 2008 3:40 pm Reply with quote
User Joined: 12 Jul 2007 Posts: 250
Hi Joe,


Could you send the complete source code of the test that causes these problems so that we can have a look at this, please?


Thx,


Ben

On 14 Apr 2008, at 16:20, Joe Lee wrote:
Quote:
I tried to send messages sequentially to a single rabbitmq server running on 127.0.0.1.
View user's profile Send private message
0x6e6562
Posted: Mon Apr 14, 2008 3:44 pm Reply with quote
User Joined: 12 Jul 2007 Posts: 250
Joe,

You are getting a
View user's profile Send private message
Guest
Posted: Mon Apr 14, 2008 6:00 pm Reply with quote
Guest
Here are the files.
0x6e6562
Posted: Mon Apr 14, 2008 9:01 pm Reply with quote
User Joined: 12 Jul 2007 Posts: 250
Joe,

A cursory glance indicates that you are using the wrong routing key to publish to the exchange.


If you use a.b.c.d instead of a.b.c.*, then when a queue binds itself to a.b.c.*, messages will be delivered to it.


Hence why you are getting a get_empty.


So just change the routing key in the
View user's profile Send private message
Guest
Posted: Thu Apr 17, 2008 12:22 am Reply with quote
Guest
Quote:
BTW, if you don't supply a host name when starting the connection, the client will start in a direct mode using native Erlang message passing rather than AMQP wire framing. This means that the client and server run in the same interpreter and eliminate the network overhead.

Is this valid also when running rabbitmq erlang client and rabbitmq server on separate erlang nodes?

I sent 3 amqp message to the rabbitmq broker from a separate erlang client node.
0x6e6562
Posted: Thu Apr 17, 2008 7:08 am Reply with quote
User Joined: 12 Jul 2007 Posts: 250
Joe,

On 17 Apr 2008, at 01:21, Joe Lee wrote:
> BTW, if you don't supply a host name when starting the connection,
> the client will start in a direct mode using native Erlang message
> passing rather than AMQP wire framing. This means that the client
> and server run in the same interpreter and eliminate the network
> overhead.
> Is this valid also when running rabbitmq erlang client and rabbitmq
> server on separate erlang nodes?

Currently not. At the moment the direct driver only uses local message
passing. It is conceivable that the direct driver could use Erlang's
internode communication, but I guess you'd have to message this
approach against normal AMQP wire framing. In both approaches you
would have to serialize and deserialize to get the data over the wire.
If the Erlang variant is significantly more efficient that AMQP, it
might be worth looking into and benchmarking.

The main point is that the client API provides a uniform interface to
user code, irrespective of the actual physical message passing
technology.

> I sent 3 amqp message to the rabbitmq broker from a separate erlang
> client node. The three 3 amqp messages create 3
> rabbit_writer:mainloop/1 processes. This rabbit_writer:mainloop/1
> process never goes away.
>
> <0.71.0> rabbit_writer:mainloop/1
> 233 132 0
> rabbit_writer:mainloop/1 2
> <0.72.0> rabbit_writer:mainloop/1
> 233 132 0
> rabbit_writer:mainloop/1 2
> <0.73.0> rabbit_writer:mainloop/1
> 233 132 0
> rabbit_writer:mainloop/1 2
>
> One rabbit_writer:mainloop process traced:
>
> initial_call: rabbit_writer:mainloop/1
> current_function: rabbit_writer:mainloop/1
> heap_size: 233
> stack_size: 2
> reductions: 132
> trap_exit: false
> <0.72.0>: getting_linked <0.112.0>
>
> After that I increased number of processes on a single erlang node
> to something higer than 50 000 and sent 50 000 messages. For some
> reason, 50 000 rabbit_writer:mainloop processes are still there.
> They don't go away. Processes only go away when I restart the
> rabbit erlang client node.
>
> 7> erlang:system_info(process_count).
> 50044

Can you send the source of the test that is producing this behaviour,
please?

HTH,

Ben

_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss@lists.rabbitmq.com
http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Post recived from mailinglist
View user's profile Send private message
Guest
Posted: Thu Apr 17, 2008 12:28 pm Reply with quote
Guest
I ran the same files that I sent earlier:

amqp_async_consume.erl
amqp_async_pub.erl
my_pmap.erl
rabbit_test.erl

Where I made changes to what you have suggested. In rabbit_test.erl,
made MyList = [<<1>>,<<2>>,<<3>>]. Ran the rabbit_test:main() in
separate erlang shell. If you are not seeing 3
rabbit_writer:mainloop/1 process in erlang node after running
rabbit_test:main(), then it could be the case that my erlang &
rabbitmq setup maybe not be installed properly or missing some
packages.

Let me know if this the case on your side,
Joe

> > I sent 3 amqp message to the rabbitmq broker from a separate erlang
> > client node. The three 3 amqp messages create 3
> > rabbit_writer:mainloop/1 processes. This rabbit_writer:mainloop/1
> > process never goes away.
> >
> > <0.71.0> rabbit_writer:mainloop/1
> > 233 132 0
> > rabbit_writer:mainloop/1 2
> > <0.72.0> rabbit_writer:mainloop/1
> > 233 132 0
> > rabbit_writer:mainloop/1 2
> > <0.73.0> rabbit_writer:mainloop/1
> > 233 132 0
> > rabbit_writer:mainloop/1 2
> >
> > One rabbit_writer:mainloop process traced:
> >
> > initial_call: rabbit_writer:mainloop/1
> > current_function: rabbit_writer:mainloop/1
> > heap_size: 233
> > stack_size: 2
> > reductions: 132
> > trap_exit: false
> > <0.72.0>: getting_linked <0.112.0>
> >
> > After that I increased number of processes on a single erlang node
> > to something higer than 50 000 and sent 50 000 messages. For some
> > reason, 50 000 rabbit_writer:mainloop processes are still there.
> > They don't go away. Processes only go away when I restart the
> > rabbit erlang client node.
> >
> > 7> erlang:system_info(process_count).
> > 50044
>
> Can you send the source of the test that is producing this behaviour,
> please?
>
> HTH,
>
> Ben
>
>
>
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss@lists.rabbitmq.com
> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>

_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss@lists.rabbitmq.com
http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Post recived from mailinglist

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