Skip to content

Commit

Permalink
fix(DNS): prefer SRV in service discovery (#4992)
Browse files Browse the repository at this point in the history
Fix #4986

Signed-off-by: spacewander <spacewanderlzx@gmail.com>
  • Loading branch information
spacewander authored Sep 7, 2021
1 parent 537e386 commit 2f45642
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 1 deletion.
2 changes: 1 addition & 1 deletion apisix/discovery/dns.lua
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ function _M.init_worker()
hosts = {},
resolvConf = {},
nameservers = servers,
order = {"last", "A", "AAAA", "SRV", "CNAME"},
order = {"last", "SRV", "A", "AAAA", "CNAME"},
}

local client, err = core.dns_client.new(opts)
Expand Down
4 changes: 4 additions & 0 deletions t/coredns/db.test.local
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,7 @@ split-weight.srv 86400 IN SRV 10 0 1980 C

priority.srv 86400 IN SRV 10 60 1979 A
priority.srv 86400 IN SRV 20 60 1980 B

; a domain has both SRV & A records
srv-a 86400 IN SRV 10 60 1980 A
srv-a IN A 127.0.0.1
4 changes: 4 additions & 0 deletions t/discovery/dns/mix.t
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ upstreams:
end
end
-- It is expected to have 5 DNS queries
-- the first turn: one for global resolver & two for discovery (SRV, then A)
-- the second turn: each one for both global resolver & discovery
if i < 2 then
ngx.sleep(1.1)
end
Expand All @@ -125,3 +128,4 @@ connect to 127.0.0.1:1053
connect to 127.0.0.1:1053
connect to 127.0.0.1:1053
connect to 127.0.0.1:1053
connect to 127.0.0.1:1053
14 changes: 14 additions & 0 deletions t/discovery/dns/sanity.t
Original file line number Diff line number Diff line change
Expand Up @@ -284,3 +284,17 @@ qr/proxy request to \S+/
--- grep_error_log_out
proxy request to 127.0.0.1:1979
proxy request to 127.0.0.2:1980
=== TEST 14: prefer SRV than A
--- apisix_yaml
upstreams:
- service_name: "srv-a.test.local"
discovery_type: dns
type: roundrobin
id: 1
--- error_log
proxy request to 127.0.0.1:1980
--- response_body
hello world

0 comments on commit 2f45642

Please sign in to comment.