You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Daniel Pocock (JIRA)" <ji...@apache.org> on 2015/03/02 10:07:04 UTC

[jira] [Commented] (ACTIVEMQ6-85) Add support for HA cluster / failover discovery using DNS SRV records

    [ https://issues.apache.org/jira/browse/ACTIVEMQ6-85?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14342946#comment-14342946 ] 

Daniel Pocock commented on ACTIVEMQ6-85:
----------------------------------------

https://issues.jboss.org/browse/HORNETQ-1270

Discussed with @jbertram on IRC

Discussed using dnsjava http://www.xbill.org/dnsjava/

    BSD licensed
    available in Maven

HornetQ servers would potentially create their own SRV records on startup, using dynamic DNS updates as demonstrated here:
http://www.xbill.org/dnsjava/dnsjava-current/examples.html

Java clients can get similar results from JNDI

Python and Perl clients using the STOMP and REST interfaces get significant benefit from this as they can't use any of the cluster discovery code that is in Java.

2014-10-09: I sent a query on the netty mailing list about whether the SRV record iteration can be done within netty:

https://groups.google.com/forum/#!forum/netty


> Add support for HA cluster / failover discovery using DNS SRV records
> ---------------------------------------------------------------------
>
>                 Key: ACTIVEMQ6-85
>                 URL: https://issues.apache.org/jira/browse/ACTIVEMQ6-85
>             Project: Apache ActiveMQ 6
>          Issue Type: New Feature
>    Affects Versions: 6.0.0
>            Reporter: Daniel Pocock
>
> Copied from HORNETQ-1270
> The DNS SRV record provides a convenient and well known mechanism to configure active-active, load balanced clusters and to provide failover information.
> It is convenient for many people because they already have DNS servers and support staff are usually familiar with the procedures for maintaining the DNS entries.
> DNS SRV also allows port numbers to be advertised.
> The clustering support using UDP multicast doesn't work for all sites, especially where the user is more concerned with failover than load-balancing.
> A specific DNS SRV implementation may involve some or all of the following:
> - clients discovering a HornetQ, JNDI or STOMP host and port
> - servers dynamically deciding which IPs and ports to bind to by checking DNS SRV records
> - servers dynamically deciding which other servers to cluster with by checking for DNS SRV records
> DNS SRV records may look like this:
> _stomp._tcp.test-mq.example.org. IN SRV 1 50 5566 testmqhost1.example.org.
> _stomp._tcp.test-mq.example.org. IN SRV 2 50 5566 testmqbackup.example.org.
> A STOMP client would then be configured with just the domain name "test-mq.example.org" and it would dynamically discover the hosts and ports from DNS



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)