6

Gần đây, một số công cụ khám phá dịch vụ đã trở nên phổ biến/"chủ đạo" và tôi tự hỏi những trường hợp sử dụng chính nào nên sử dụng chúng thay vì cân bằng tải truyền thống.Sự khác nhau về khái niệm giữa các công cụ Khám phá Dịch vụ và Trình cân bằng tải có kiểm tra tình trạng nút là gì?

Với LB, bạn nhóm một loạt các nút phía sau bộ cân bằng, và sau đó khách hàng thực hiện yêu cầu cho bộ cân bằng, người thường (vòng tròn) yêu cầu tất cả các nút trong cụm.

Với dịch vụ khám phá (Consul, ZK, v.v.), bạn hãy để một dịch vụ "đồng thuận" tập trung xác định nút nào cho dịch vụ cụ thể là lành mạnh và ứng dụng của bạn kết nối với các nút mà dịch vụ cho là khỏe mạnh. Vì vậy, trong khi phát hiện dịch vụ và cân bằng tải là hai khái niệm riêng biệt, khám phá dịch vụ cho phép bạn cân bằng tải như là một tác dụng phụ thuận tiện.

Tuy nhiên, nếu cân bằng tải (nói HAProxy hoặc nginx) có giám sát và kiểm tra sức khỏe được tích hợp vào nó, bạn sẽ nhận được nhiều dịch vụ khám phá như là một tác dụng phụ của cân bằng tải! Có nghĩa là, nếu LB của tôi không chuyển tiếp yêu cầu đến một nút không lành mạnh trong cụm của nó, thì chức năng đó tương đương với máy chủ đồng thuận yêu cầu ứng dụng của tôi không kết nối với nút không lành mạnh.

Vì vậy, với tôi, các công cụ khám phá dịch vụ có cảm giác giống như "6 trong một, nửa tá" tương đương với cân bằng tải. Am i thiếu cái gì ở đây? Nếu ai đó có kiến ​​trúc ứng dụng hoàn toàn được xác định dựa trên các dịch vụ microservices cân bằng tải, thì lợi ích (hoặc không) để chuyển sang mô hình dựa trên khám phá dịch vụ là gì?

+0

Tại sao là lần truy cập và chạy? Điều này cho thấy nghiên cứu, không phải là một bản sao, và là một [SSCCE] (http://sscce.org). – smeeb

+0

Tôi đánh giá cao việc chỉnh sửa @Fritz nhưng câu hỏi loại "vs" là * khét tiếng * vì không được chú ý nhiều đến SO. Và câu hỏi này không thực sự là một câu hỏi kiểu "vs", tôi đơn giản cố gắng hiểu vấn đề (nếu có) các công cụ khám phá dịch vụ * thực sự * giải quyết cho các cân bằng tải truyền thống. Cảm ơn một lần nữa mặc dù! – smeeb

+0

Tôi tự hỏi "mọi người sẽ tìm kiếm gì, nếu họ tự hỏi câu hỏi của bạn và tin rằng họ có nhiều khả năng sử dụng" so với ". Nếu điều đó không tốt cho bạn, thì tiêu đề chi tiết hơn, ví dụ:" Sự khác biệt về khái niệm là gì giữa Service Discovery và Load Balancer? " –

Trả lời

5

Cân bằng tải thường cần điểm cuối của tài nguyên để cân bằng tải lưu lượng truy cập. Với sự phát triển của microservices và container dựa trên các ứng dụng, thời gian chạy tạo ra container năng động (docker container) là không lâu và không có điểm kết thúc tĩnh. Các điểm cuối container này là tạm thời và chúng thay đổi khi chúng được loại bỏ và được tạo ra để mở rộng quy mô hoặc các lý do khác. Các công cụ phát hiện dịch vụ như Consul được sử dụng để lưu trữ thông tin điểm cuối của các thùng chứa được tạo động (các thùng chứa docker). Các công cụ như người đăng ký lãnh sự đang chạy trên máy chủ lưu trữ container đăng ký các điểm cuối của container trong các công cụ khám phá dịch vụ như lãnh sự. Các công cụ như Consul-template sẽ lắng nghe những thay đổi đối với các điểm cuối container trong lãnh sự và cập nhật bộ cân bằng tải (nginx) để gửi lưu lượng đến. Do đó cả hai công cụ Service Discovery như Consul và Load Balancing như Nginx cùng tồn tại để cung cấp khả năng phát hiện dịch vụ thời gian chạy và khả năng cân bằng tải tương ứng.

Theo dõi: lợi ích của các nút tạm thời (các nút đến và đi, sống và chết) so với các nút "vĩnh viễn" như VM truyền thống là gì?

[DDG]: Những điều mà đến một cách nhanh chóng để tâm trí của tôi: các nút Ephemeral như container Docker phù hợp cho các dịch vụ không quốc tịch như API vv (Có lực kéo container dai dẳng sử dụng khối lượng bên ngoài - trình điều khiển âm lượng vv)

  1. tốc độ: Spinning lên hoặc phá hủy các thùng chứa phù du (container Docker từ hình ảnh) mất ít hơn 500 mili giây như trái ngược với phút trong đứng lên truyền thống VM

  2. đàn hồi cơ sở hạ tầng: trong thời đại của điện toán đám mây, chúng tôi muốn mở rộng ra ngoài và trong theo nhu cầu của người dùng ngụ ý sẽ có con tainers của ephemeral trong tự nhiên (không thể giữ cho IPs vv). Hãy nghĩ đến chiến dịch đánh dấu trong một tuần mà chúng tôi dự kiến ​​tăng TPS 200% lưu lượng truy cập, nhanh chóng mở rộng quy mô với các vùng chứa và sau đó đăng chiến dịch, phá hủy nó.

  3. Sử dụng tài nguyên: Trung tâm dữ liệu hoặc Cloud hiện là một máy tính lớn (cụm tính toán)

Phần lớn điều này là có thể do mất liên kết với các thùng chứa tạm thời và khám phá thời gian sử dụng công cụ khám phá dịch vụ như lãnh sự. Các máy ảo truyền thống và sự ràng buộc chặt chẽ của các IP có thể làm giảm khả năng này.

+0

Cảm ơn @DDG (+1, và tôi không phải là người đã downvoted bạn mà không có lời giải thích). Vì vậy, những gì bạn đang nói có ý nghĩa hoàn hảo. Tôi đoán câu hỏi tiếp theo của tôi là: lợi ích của các nút tạm thời (các nút đến và đi, sống và chết) so với các nút "vĩnh viễn" như các máy ảo truyền thống là gì? Nếu bạn có thể giải thích nhiều, tiền thưởng là của bạn! – smeeb

2

Lưu ý rằng cả hai không nhất thiết phải loại trừ lẫn nhau. Có thể, ví dụ, bạn vẫn có thể hướng khách hàng đến một bộ cân bằng tải (có thể thực hiện các vai trò khác như điều chỉnh) nhưng có bộ cân bằng tải sử dụng một đăng ký dịch vụ để xác định vị trí các cá thể.

Cũng đáng để chỉ ra rằng khám phá dịch vụ cho phép cân bằng tải phía máy khách tức là khách hàng có thể gọi trực tiếp dịch vụ mà không cần nhảy thêm thông qua bộ cân bằng tải. Sự hiểu biết của tôi là đây là một trong những lý do mà Netflix phát triển Eureka, để tránh các cuộc gọi liên dịch vụ phải đi ra ngoài và quay trở lại thông qua ELB bên ngoài mà họ sẽ phải trả. Cân bằng tải phía máy khách cũng cung cấp phương tiện cho khách hàng để tác động đến quyết định cân bằng tải dựa trên quan điểm riêng của mình về tính khả dụng của dịch vụ.

1

Nếu bạn nhìn vào các công cụ từ góc độ hoàn toàn khác, cụ thể là ITSM/ITIL, cân bằng tải sẽ trở thành "chỉ", trong khi phát hiện dịch vụ là một phần của việc giữ CMDB của bạn luôn cập nhật và và khả năng kết nối của chúng, để có khả năng hiển thị tốt hơn về tác động, trong trường hợp thời gian ngừng hoạt động và tổng quan về các khu vực có thể cần bổ sung, trong trường hợp các ứng dụng có tính sẵn sàng cao. Ngoài ra, khám phá dịch vụ chỉ cung cấp cho bạn một hình ảnh như lần quét cuối cùng, và không gần thời gian thực (tất nhiên phụ thuộc vào khoảng thời gian quét mà bạn đã đặt), trong khi cân bằng tải sẽ giữ một up-to- hình ảnh ngày về sức khỏe của ứng dụng của bạn.

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