Re: [jgroups-users] Multicast UDP without higher level protocols?
Questions/problems related to using JGroups <[email protected]>
| Newsgroups | gmane.comp.java.javagroups.general |
|---|---|
| Message-ID | <[email protected]> |
On 12/02/16 00:37, Questions/problems related to using JGroups wrote: > Greetings form Oregon! Greetings from Switzerland! > I have a question about the higher level protocols when it comes to UDP > multicast: > > I was working on some existing code tracking down some instances of what > appeared to be possibly a split brain. Their configuration was only the > lowest level multicast: (Sorry about the old style, just wanted to > replicate exactly what they had) > > UDP(mcast_addr=228.9.7.9;mcast_port=45599; > ucast_recv_buf_size=128K;ucast_send_buf_size=128K;mcast_recv_buf_size=128K;mcast_send_buf_size=128K) This is as if you only used a MulticastSocket for sending and receiving of messages; no group membership or retransmission. > So I created a test where a JChannel was created connecting to > “Docker-JGroups” cluster and periodically “ping” with > channel.send(Message) I’d then watch the channel view and the results > of who replied for each hosts. > > I’d then fire this up in a batch of docker containers (# ranging from 3 > to 20) > > I’d then tweak the host iptables to either drop or reject the multicast > packets coming through the docker “network” I’d see the individual > programs cease to find each other and be running in their own instance. > That’s good > > Then I’d delete the iptables rule and I’d see them all join up again > into a single network cluster? (By single cluster, I mean, all the hosts > are responding to the JChannel.send() again) > > I thought things like FD, MERGE and pbcast.GMS were required for all of > that to work properly? In fact the only thing I can tell is that when I > have only UDP protocol setup, that each node thinks it’s the cluster > coordinator, and failure detection seems to be a little faster with all > the other protocols combined, but I can’t tell any difference otherwise? > > Obviously I’m missing something basic – would you mind explaining why > the behavior is so similar despite the fact that there’s only one > protocol configured with this particular configuration? With UDP only, the members were not really in a cluster; they each fired messages to the multicast address and everyone received them. However, this did not - provide a cluster view (channel.getView() should be null) and notify the app when members joined or left - retransmit dropped packets - prevent duplicate packets - provide ordering etc. I've seen stacks like UDP:UNICAST3 which means that multicasts are unreliable and unicasts are reliable, the use case was audio/video transmission where dropped packets are not a problem. -- Bela Ban, JGroups lead (http://www.jgroups.org) ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140