2009-06-24 28 views
5

tôi là một coder Java và không phải là rất quen thuộc với cách mạng làm việc (trừ các kết nối/TCP UDP cơ bản)thế nào để gửi yêu cầu mạng đến máy chủ (địa lý) gần

Nói rằng tôi có các máy chủ chạy trên máy trong Mỹ, Châu Á, Châu Mỹ Latinh và Châu Âu. Khi người dùng yêu cầu một dịch vụ, tôi muốn yêu cầu của họ đến máy chủ gần nhất với họ.

Tôi có thể có một địa chỉ: mycompany.com và bằng cách nào đó nhận được yêu cầu được định tuyến đến máy chủ thích hợp không? Rõ ràng khi ai đó truy cập cnn.com, họ sẽ nhận được hình ảnh, video, v.v ... từ một máy chủ gần họ. Thành thật mà nói, tôi không thấy nó hoạt động như thế nào.

Nhân tiện, máy chủ của tôi không phục vụ các trang web, chúng phục vụ các dịch vụ khác như dữ liệu thị trường chứng khoán .... chỉ trong trường hợp có liên quan.

Vì tôi là một lập trình viên, tôi quan tâm để biết làm thế nào người ta sẽ làm điều đó trong phần mềm. Vì điều này ít hơn một chút tò mò, các con trỏ đến các sản phẩm hoặc dịch vụ thương mại sẽ không hữu ích trong việc hiểu vấn đề này :)

Trả lời

0

Một cách tiếp cận đơn giản là xem byte đầu tiên (Class A) của IP địa chỉ đi vào yêu cầu DNS UDP và sau đó dựa vào đó bạn có thể phân phối đúng vị trí địa lý IP.

+0

SO, giả sử yêu cầu đến từ máy khách C đến máy chủ "proxy" của tôi P, tôi nhận thấy máy chủ X gần nhất với C nên tôi chuyển yêu cầu của mình tới X. Nhưng điều đó không có nghĩa là tất cả lưu lượng truy cập đến proxy P, sau đó tôi chuyển nó đến các máy chủ gần nhất? Nếu P ở New York, điều đó có nghĩa là lưu lượng truy cập Tokyo đến NY, sau đó NY chuyển tiếp mỗi gói đến máy chủ gần nhất ở Bắc Kinh? Làm thế nào để proxy có thể bảo Tokyo nói chuyện với Bắc Kinh, sau đó thoát khỏi vòng lặp? – Shahbaz

+4

Lần đầu tiên C muốn kết nối với máy chủ của bạn, anh ta sẽ thực hiện truy vấn DNS tới DNS cục bộ của mình. Máy chủ DNS của ISP địa phương sẽ không có địa chỉ IP, do đó DNS của ISP sẽ gửi yêu cầu DNS UDP tới máy chủ định danh của bạn. Để đơn giản, giả sử rằng DNS của ISP của anh ta ở gần anh ta. Sau đó, dựa trên địa chỉ IP nguồn của truy vấn DNS, quyết định IP cụ thể nào sẽ gửi lại cho truy vấn DNS của mình. Đây là điều một lần trong mỗi phiên. Từ thời điểm đó, máy khách kết nối trực tiếp với IP. Không cần chuyển tiếp. –

+0

Câu trả lời thứ hai của Jeff (một với thông tin DNS) gần nhất với những gì tôi đang cố gắng hiểu. Tôi không nhận được tất cả mọi thứ, nhưng có một số từ khóa có liên quan hơn để google. Tôi dường như không thể gắn cờ bình luận không phải cha mẹ mặc dù. Cảm ơn! – Shahbaz

0

Một cách tiếp cận khác sẽ phức tạp hơn một chút. Thay vì sử dụng máy chủ gần với người dùng nhất, bạn có thể sử dụng máy chủ có độ trễ thấp nhất cho người dùng đó.

Độ trễ thấp hơn sẽ cung cấp tốc độ truyền nhanh hơn trong khi dễ tính hơn vị trí địa lý.

Đối với một cái nhìn chi tiết hơn, hãy kiểm tra bài viết này trên CDN (chú ý đến các Mục Công nghệ):

Content Delivery Network - Wikipedia

Đây là những loại mạng rằng các trang web lớn sử dụng để phân phối nội dung của họ trên mạng (Akamai là một ví dụ phổ biến). Như bạn có thể thấy, mọi thứ có thể khá phức tạp một cách nhanh chóng với CDN có giao thức độc quyền riêng của họ, v.v ...

0

Cập nhật: Tôi không thấy tuyên bố từ chối trách nhiệm về giải pháp thương mại ở cuối bài đăng gốc. Tôi sẽ để lại điều này cho những ai có thể thấy nó quan tâm.

-

Hãy xem http://ultradns.com/. Một dịch vụ DNS được quản lý như vậy có thể chỉ là những gì bạn cần để hoàn thành những gì bạn đang tìm kiếm.

Amazon.com, Forbes.com, Oracle, tất cả sử dụng chúng ...

Trích Từ http://ultradns.com/solutions/traffic.html:

giải pháp

UltraDNS Quản lý giao thông cung cấp một bộ công cụ cho phép các quản trị viên IT để xác định cân bằng tải cấu hình cho máy chủ nội dung cư trú tại một hoặc nhiều vị trí địa lý. Giải pháp quản lý lưu lượng quản lý lưu lượng truy cập được hướng đến các máy chủ bằng cách tự động thay đổi các phản hồi đối với các yêu cầu DNS. Cân bằng tải được thực hiện dựa trên các chỉ số động thu được từ các máy chủ lưu trữ trên cơ sở giám sát liên tục.Giải pháp quản lý lưu lượng UltraDNS không phải là một ứng dụng duy nhất, nhưng kết hợp khả năng của một số hệ thống UltraDNS hiện có để kiểm soát lưu lượng, quản lý lỗi trang web và tối ưu hóa hệ thống nội dung web.

0

Một cách tiếp cận là, như Jeff đã đề cập, sử dụng địa chỉ IP: http://en.wikipedia.org/wiki/Geolocation_software

Trong kinh nghiệm của tôi, điều này là chính xác đến thành phố tương đối lớn gần nhất (ở Mỹ ít nhất). Có một số cơ sở dữ liệu mở để hỗ trợ điều này (xem liên kết wiki). Sau đó, bạn có thể tạo thẻ hình ảnh và liên kết tải xuống và như vậy dựa trên thông tin này.

Để định vị máy chủ gần nhất, tôi chắc chắn bạn có thể nghĩ ra một số cách để thực hiện. Ví dụ, nếu lợi nhuận tốt nhất bạn có thể nhận được là thành phố lớn, bạn có thể tra cứu thành phố đó trong danh sách Latitude/Kinh độ và tính toán máy chủ gần nhất dựa trên đó.

Các vấn đề liên quan