Ich versuche, Konsul verwenden Service-Discovery von einer Java-Anwendung auf einem Standard-Debian-Server ausgeführt zu tun Spotify dnsjava mitConsul Java DNS-SRV-Lookup
weiß ich Consul DNS lauscht auf Port 8600 für Abfragen (https://www.consul.io/docs/agent/dns.html).
Das DNS hört jedoch Port 53 standardmäßig ab, daher müssen Abfragen an Consul weitergeleitet werden. Ich habe diese Weiterleitung mit IPTables durchgeführt - aber ich weiß nicht, ob dies der richtige Ansatz ist. Es funktioniert jedoch mit Dig, aber ich weiß nicht, was die Nebenwirkungen sein könnten. Als Anwendungsentwickler, habe ich nicht unbedingt Zugang iptables zu aktualisieren und zusätzliche Pakete installieren
Ich habe einen Dienst nenne ich bapi
sudo apt-get install dnsutils
sudo iptables -t nat -A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 8600
sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 8600
sudo iptables -t nat -A OUTPUT -d localhost -p udp -m udp --dport 53 -j REDIRECT --to-ports 8600
sudo iptables -t nat -A OUTPUT -d localhost -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 8600
dig @127.0.0.1 -p 8600 bapi.service.consul. SRV
dig @127.0.0.1 -p 8600 bapi-stub-node.node.consul. ANY
dig @127.0.0.1 -p 53 bapi.service.consul. SRV
dig @127.0.0.1 -p 53 bapi-stub-node.node.consul. ANY
Diese Anwendung DNS aus einer Java-Anwendung zum Nachschlagen versucht, aber es nicht funktioniert, weiß ich nicht, warum
https://github.com/tonymurphy/srv-discovery
ich weiß Frühling Konsul Integration und Service Discovery hat, aber ich will nicht das ganze Gepäck, das mit ihm kommt, und es scheint zu verwenden http api bis d o Service-Lookups