Có rất nhiều giải pháp để thực hiện dịch vụ khám phá trong môi trường Mesos.
Chúng ta có thể chia họ thành 3 nhóm theo cách khách hàng tìm thấy dịch vụ:
- Dựa trên proxy
- Khi giữa máy khách và dịch vụ đặt proxy, ví dụ:HAProxy (dựa trên marathon-lb), fabio, traefik, nixy) đảm nhận việc cân bằng tải các dịch vụ của bạn dựa trên đường dẫn HTTP, tiêu đề, miền e.t.c. Giải pháp này dễ phát triển và tạo cơ hội để điều chỉnh cân bằng tải dựa trên yêu cầu. Mặt khác, chúng tôi thêm hop bổ sung và như một proxy, chúng tôi có tình huống MitM.
- DNSlike (hỏi điểm cuối nổi tiếng đặc biệt để biết vị trí của dịch vụ)
- Mạng do phần mềm xác định - chúng tôi có thể sử dụng IP cho mỗi vùng chứa với SDN để mỗi vùng chứa được hiển thị với IP duy nhất và hiển thị các dịch vụ của nó bằng cách sử dụng các cổng mặc định 80 cho HTTP, 443 cho HTTPS, v.v. Đây là kỹ thuật tiên tiến nhất và tương đối mới mặc dù nó sử dụng DNS cũ đơn giản để tìm IP dịch vụ. Việc xâm nhập proxy có thể khó hơn nhưng sẽ hoạt động với bất kỳ loại lưu lượng nào.
- Bản ghi dịch vụ - nơi mọi vùng chứa được đăng ký trong DNS toàn cầu và khách hàng có được IP và PORT của nó bằng cách sử dụng các truy vấn DNS SRV. Consul Mesos DNS cung cấp loại máy chủ DNS này. Ngoài ra một số giao thức khác cũng dựa trên ý tưởng này (hãy xem Bonjure). Nó cố gắng khai thác tốt nhất cả SDN và proxy. Nó tương đối dễ thiết lập và nó là giao thức bất khả tri.
- Khác
- Bất kỳ thứ gì không phù hợp với các loại khác, ví dụ:giải pháp phát triển nội bộ, vvd hoặc Eureka. Nó có thể rất chặt chẽ với cơ sở hạ tầng và ứng dụng cung cấp một số tối ưu hóa. Điều đáng nói là có một số cố gắng sử dụng dịch vụ khám phá dựa trên DHT - Meta Service Discovery
Bạn có thể tìm thêm thông tin chi tiết về các công cụ có thể được sử dụng để tạo Dịch vụ Khám phá tại đây
Chúng tôi có thể phân chia các Dịch vụ Khám phá theo cách chúng được điền vào các mục dịch vụ:
- Tổng hợp
- Mesos / Marathon được truy vấn định kỳ về trạng thái. Đây là cách Mesos DNS đang hoạt động. Đây là phương pháp đơn giản nhất nhưng sẽ gây ra sự chậm trễ lớn giữa việc bắt đầu / dừng dịch vụ và các thay đổi được phát hiện ra dịch vụ. Điều này có thể được giảm thiểu bằng cách sử dụng tính năng kiểm tra sức khỏe.
- Dựa trên sự kiện
- Marathon có khả năng đẩy các sự kiện với thông tin về các thay đổi trạng thái (Cũng có thể bao gồm bus sự kiện int Mesos - tài liệu thiết kế. Theo cách này marathon-lb đang hoạt động. Công việc tương tự được thực hiện bởi marathon-consul nhưng dữ liệu được chuyển đến lãnh sự.
- Trong ứng dụng / vùng chứa
- Các âm thanh phía trên không đồng bộ nên có thể có khoảng thời gian khi trạng thái khám phá dịch vụ của bạn đã cũ, ví dụ:dịch vụ đã bắt đầu nhưng không sẵn sàng để phục vụ các yêu cầu hoặc dịch vụ vừa bị chết. Ngay cả với healtcheck, chúng tôi không thể cho rằng tất cả mọi thứ đều xảy ra với 0 thời gian chết. Giải pháp để giảm thiểu thời gian ngừng hoạt động là để ứng dụng tự đăng ký khi ứng dụng sẵn sàng cung cấp yêu cầu và hủy đăng ký trước khi dừng (hay còn gọi là tắt nhanh).