DnsOptions

public final class DnsOptions


Một lớp định cấu hình chức năng phân giải máy chủ lưu trữ của Cronet. Xin lưu ý rằng mặc dù chúng tôi đề cập đến DNS là cơ chế phổ biến nhất đang được sử dụng cho ngắn gọn, nhưng các chế độ cài đặt áp dụng cho những phương tiện khác để phân giải tên máy chủ lưu trữ như phân giải tệp máy chủ lưu trữ.

Cronet phân giải tên máy chủ theo hai cách – bằng cách sử dụng trình phân giải hệ thống (sử dụng getaddrinfo do các thư viện hệ thống cung cấp) hoặc bằng cách sử dụng trình phân giải tuỳ chỉnh được tích hợp vào bộ phần cứng và phần mềm mạng mà Cronet sử dụng.

Ngăn xếp tích hợp mang lại một số lợi thế so với việc sử dụng trình phân giải hệ thống:

  • Nó được điều chỉnh cho phù hợp với nhu cầu của ngăn xếp mạng, đặc biệt là tốc độ và độ ổn định.
  • getaddrinfo là một lệnh gọi chặn yêu cầu dành riêng cho các luồng worker và không thể huỷ (chúng ta cần huỷ luồng cho đến khi lệnh gọi hoàn tất)
  • Giao diện getaddrinfo không cung cấp thông tin chi tiết về nguyên nhân gốc rễ gây ra lỗi
  • struct addrinfo không cung cấp TTL (Thời gian tồn tại) của các địa chỉ được trả về. Điều này hạn chế tính linh hoạt của việc xử lý lưu vào bộ nhớ đệm (ví dụ: cho phép sử dụng các bản ghi DNS cũ) và yêu cầu chúng tôi phải dựa vào bộ nhớ đệm DNS của hệ điều hành hoặc cực kỳ thận trọng với TTL.
  • Là một phần của hệ điều hành, getaddrinfo phát triển từ từ. Việc sử dụng một ngăn xếp tuỳ chỉnh cho phép Cronet giới thiệu các tính năng như DNS được mã hoá nhanh hơn.

Hầu hết cấu hình trong lớp này chỉ áp dụng nếu trình phân giải DNS tích hợp được dùng.

Tóm tắt

Các loại lồng nhau

public final class DnsOptions.Builder

Trình tạo cho DnsOptions.

Chú thích cho những API chưa được coi là ổn định.

Một lớp định cấu hình chức năng DNS cũ của Cronet.

Trình tạo cho StaleDnsOptions.

Phương thức công khai

builder

public static DnsOptions.Builder builder()

getEnableStaleDns

public @Nullable Boolean getEnableStaleDns()

getPersistHostCache

public @Nullable Boolean getPersistHostCache()

getPersistHostCachePeriodMillis

public @Nullable Long getPersistHostCachePeriodMillis()

getPreestablishConnectionsToStaleDnsResults

public @Nullable Boolean getPreestablishConnectionsToStaleDnsResults()

getStaleDnsOptions

public @Nullable DnsOptions.StaleDnsOptions getStaleDnsOptions()

getUseBuiltInDnsResolver

public @Nullable Boolean getUseBuiltInDnsResolver()