Some thoughts on ZeroC: Very fast; The ability to have multiple endpoints; Ability to load balance at end points; The ability to reconnect to another endpoint if one of the nodes is omitted. It is transparent to the end user; Has a good toolchain (IceGrid, IceStorm, IceBox, etc.); Distributed, high availability, multiple switching to another resource, etc.
In addition, I used it for hot-swappable modules (something similar to Erlang), creating a client proxy with multiple endpoints, and then reset each endpoint each time for a quick update. With a transparent retry to another endpoint, I could start and start the system all the time when I did the update. Not sure if this is an advertising feature or an unconfirmed side effect :)
In general, itβs very easy to scale your servers if you need to use ZeroC Ice.
I know that ZeroMQ provides a fantastic set of tools and messaging templates, and I will continue to use it for my pet projects. However, the problem I see is that it is very easy to go overboard and lose all your distributed components. This should be in a distributed environment. How do you know where your clients / server is when you need to upgrade? If one of the components in the chain does not receive a message, how to determine where the problem is? publisher? customer? or any of the bridges (REP / REQ, XREP / XREQ, etc.) between?
Overall, ZeroC provides a much better set of tools and an ecosystem for enterprise solutions.
And this is open source :)
source share