Re: [masstransit-discuss] How to configure MassTransit in an unreliable network environment?

29 views
Skip to first unread message

Travis Smith

unread,
Nov 29, 2016, 11:27:05 AM11/29/16
to masstransit-discuss
I feel like Chris had an answer for local store-and-send for messages a little while ago on the list. But the answer was previously "no." 

In cases like this I would create a local RabbitMQ instance, then have an out of band process that can handle the transitive nature of the network to shovel messages between instances. Federation sounds like it could be useful, but RabbitMQ handles poorly when the connection is poor between two federated instances. So I wouldn't suggest that. 

On Sun, Nov 27, 2016 at 11:20 PM Frank Tamminga <p.f.ta...@gmail.com> wrote:

I'm trying to get my head around MassTransit in combination with RabbitMQ. 


The basic concepts are working in a test project, but what I need is the following:

My system will have one or more servers that react to real life events (telephony). 

These events will, by means of MassTransit and RabbitMQ, translate into messages that will be picked up by one or more receivers via a separate server, set up as RabbitMQ host. So far so good.


However, I cannot assume that I always have a connection between the publisher and the host (RabbitMQ) machines. Just assume that the publishing server will continue to consume the real life events, but cannot publish it's messages to it's RabbitMQ host.


So, the question is: Does MassTransit have some kind of mechanism to store messages locally some way until the connection is re-established? 

Or should I install RabbitMQ on every publishing server as well, in order to create a local exchange? Then I have to make the exchanges synchronize themselves after a reconnect.


--
You received this message because you are subscribed to the Google Groups "masstransit-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to masstransit-dis...@googlegroups.com.
To post to this group, send email to masstrans...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/masstransit-discuss/61b650f8-2155-4d4b-80cf-86b45b385af0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
-Travis

Travis Smith

unread,
Nov 29, 2016, 11:27:48 AM11/29/16
to masstransit-discuss
Also, keep in mind disk space. It might not be a problem but if you fill up the disk, RabbitMQ behaves poorly and it's no obvious why. So if you'll be offline for a while, make sure you monitor that part. 
--
-Travis

Chris Patterson

unread,
Nov 29, 2016, 2:13:39 PM11/29/16
to masstrans...@googlegroups.com
Setting up an automated shovel (easy with the RabbitMQ UI) is the best way, and run a local broker instance. The shovel runs on a schedule and will just move those messages to the remote broker.

Federation is much more complicated, and something we avoided once we saw the complexity.

On Tue, Nov 29, 2016 at 8:27 AM, Travis Smith <tra...@legomaster.net> wrote:
Also, keep in mind disk space. It might not be a problem but if you fill up the disk, RabbitMQ behaves poorly and it's no obvious why. So if you'll be offline for a while, make sure you monitor that part. 
On Tue, Nov 29, 2016 at 8:26 AM Travis Smith <tra...@legomaster.net> wrote:
I feel like Chris had an answer for local store-and-send for messages a little while ago on the list. But the answer was previously "no." 

In cases like this I would create a local RabbitMQ instance, then have an out of band process that can handle the transitive nature of the network to shovel messages between instances. Federation sounds like it could be useful, but RabbitMQ handles poorly when the connection is poor between two federated instances. So I wouldn't suggest that. 

On Sun, Nov 27, 2016 at 11:20 PM Frank Tamminga <p.f.ta...@gmail.com> wrote:

I'm trying to get my head around MassTransit in combination with RabbitMQ. 


The basic concepts are working in a test project, but what I need is the following:

My system will have one or more servers that react to real life events (telephony). 

These events will, by means of MassTransit and RabbitMQ, translate into messages that will be picked up by one or more receivers via a separate server, set up as RabbitMQ host. So far so good.


However, I cannot assume that I always have a connection between the publisher and the host (RabbitMQ) machines. Just assume that the publishing server will continue to consume the real life events, but cannot publish it's messages to it's RabbitMQ host.


So, the question is: Does MassTransit have some kind of mechanism to store messages locally some way until the connection is re-established? 

Or should I install RabbitMQ on every publishing server as well, in order to create a local exchange? Then I have to make the exchanges synchronize themselves after a reconnect.


--
You received this message because you are subscribed to the Google Groups "masstransit-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to masstransit-discuss+unsub...@googlegroups.com.
To post to this group, send email to masstransit-discuss@googlegroups.com.
--
-Travis
--
-Travis

--
You received this message because you are subscribed to the Google Groups "masstransit-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to masstransit-discuss+unsub...@googlegroups.com.
To post to this group, send email to masstransit-discuss@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/masstransit-discuss/CAAqUTbn0thT-wVGZ%3DQ2M1EH85CBKPuDJwbq%3De7eW74pLmid%2BSQ%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages