I'm using DPS as a routing engine, basically. We will have multiple nodes
of a particular type connecting into the system which are basically
different applications that have different needs. These different
applications should only consume a message one time, but it doesn't matter
which of their nodes gets it (load balancing or competing consumers).
As far as requiring the cluster to stay in-tact, I'm not really concerned
about that so much and that's to be expected that things will happen ("let
it fail" right), but what I do want to be able to do is, in a controlled
fashion, upgrade a running system to a new version by doing some sort of
rolling restart approach, or the like. That's what I'm trying to
understand is how do folks do that? Sure, things will happen when things
don't go as planned, but I want to at least come up with the "as planned"
situation first before we worry about the failure scenarios.
On Monday, July 6, 2015 at 1:04:49 PM UTC-4, Michael Frank wrote:
>
> what problem are you trying to solve with DistributedPubSub? if you are
> not tolerant to losing some messages, then DistributedPubSub might not be
> appropriate in your scenario.
>
> i wouldn't depend on always being able to gracefully leave the cluster in
> production! node failures and network partitions are a fact of life.
>
> -Michael
>
> On 07/06/15 06:08, James Carman wrote:
>
> We are considering using the DistributedPubSub support in a production
> system. We would like to be able to upgrade this system on the fly. I am
> trying to get some advice on that sort of setup. What we've seen is that
> when a node dies, we definitely have missed messages. However, when I
> issue the "leave" command (via JMX), things appear to clean up gracefully.
> Obviously, we would use the "leave" command in a production upgrade
> scenario, but is there anything we can do (other than setting up the
> at-least-once-delivery stuff) to get the cluster to more gracefully recover
> from a node failure? I've been playing around with this stuff using this
> very simple project on github:
>
> https://github.com/jwcarman/akka-cluster-sandbox
>
> Basically, I've set it up so that there are three "seed" nodes, which I
> start up together. Then, I fire up the "client" node, which basically just
> sends strings to one of the seed nodes using a
> DistributedPubSubMediator.Send message.
> --
> >>>>>>>>>> Read the docs: http://akka.io/docs/
> >>>>>>>>>> Check the FAQ:
> http://doc.akka.io/docs/akka/current/additional/faq.html
> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
> ---
> You received this message because you are subscribed to the Google Groups
> "Akka User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>.
> To post to this group, send email to [email protected]
> <javascript:>.
> Visit this group at http://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.