We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this questionI am currently looking into a variety of service discovery protocols available to Java and have come up with a small list:
- DNS-SD[1] a.k.a mDNS - implemented by jmDNS and also used as a backend for Zeroconf/Bonjour discovery provider for ECF (Eclipse Communication Framework)
- UPnP[2] - implemented by Cling library
- SLP - implemented by OpenSLP and jSLP projects (later is also available as ECF Discovery provider)
There's probably more options, if so, I invite you to add tham to the mix.
I would love to get some objective listings of each protocol's pros and cons from people who have used one or many of these. How does implementation of publishing and discovering a service look like, what is the "chattiness" of the protocol, how reliable is it (both - the protocol and the implementations), does it require centralized serv开发者_开发技巧ice directory or is it p2p/decentralized etc.
Which one would you choose to provide seamless automatic discovery of multiple devices/services on the LAN?
jmdns - the underlying algorithms are much simpler than uPnP. Simplicity counts here.
Although this is old, I will dovetail into the answer that suggested using ZooKeeper.
Netflix released Curator, a framework and client wrapper around ZooKeeper, which includes (among other recipies) a Service Discovery extension.
Apache ZooKeeper can be used for service discovery as well
精彩评论