Làm thế nào có thể mở rộng là ZeroMQ? Tôi đặc biệt quan tâm đến việc hiểu tiềm năng của nó khi chạy trên một số lượng lớn (10.000 - 15.000) lõi.Khả năng mở rộng là ZeroMQ như thế nào?
Trả lời
Chúng tôi đã cố gắng làm cho nó có thể mở rộng nhất có thể nhưng cá nhân tôi chỉ được thử nghiệm trên tối đa 16 hộp lõi. Lên đến giới hạn đó, chúng tôi đã thấy gần như tuyến tính.
Lưu ý rằng mặc dù ZeroMQ đa luồng trong nội bộ, có thể không khôn ngoan khi chỉ dựa vào đó để mở rộng quy mô lên đến số lượng lõi lớn. Tuy nhiên, vì ZeroMQ sử dụng cùng một API cho giao tiếp giữa các máy, inter-process và inter-thread, thật dễ dàng để viết ứng dụng bằng cách sử dụng ZeroMQ có thể di chuyển liên tục vào một kịch bản một lõi hoặc vào một lưới vải nhiều, nhiều máy.
ZeroMQ đã nổi tiếng là giao thức nhắn tin có cấu trúc nhanh nhất xung quanh nên nếu bạn định làm điểm chuẩn để chọn công nghệ, ZeroMQ chắc chắn sẽ là một trong số đó. Hai lý do chính để sử dụng ZeroMQ là API đa ngôn ngữ dễ sử dụng của nó (xem tất cả các ví dụ trên trang web Hướng dẫn ZeroMQ) và chi phí thấp của nó cả về byte trên dây và trong điều khoản của độ trễ. Ví dụ ZeroMQ có thể tận dụng UDP multicast để chạy nhanh hơn bất kỳ giao thức TCP nào, nhưng lập trình viên ứng dụng không cần phải tìm hiểu một API mới. Đó là tất cả bao gồm.
Bạn không đề cập đến việc các lõi 10k hoặc 15k của bạn có cùng một hộp hay không.
Giả sử chúng là. Cứ hai năm một lần, số lõi trên một hộp có thể gấp đôi. Vì vậy, nếu chúng ta có hộp 16 lõi ngày nay, nó sẽ là 16K lõi trong 20 năm.
Vì vậy, bây giờ, câu hỏi của bạn là có thể, "ZeroMQ sẽ giúp quy mô ứng dụng của tôi với số lượng lõi khổng lồ như vậy, sao cho nó sẽ mở rộng trong 20 năm tới?" Câu trả lời là "có, nhưng chỉ khi bạn sử dụng nó đúng cách". Điều này có nghĩa là thiết kế ứng dụng của bạn bằng cách sử dụng các ổ cắm và mẫu inproc phân chia đúng công việc và luồng dữ liệu. Bạn sẽ cần điều chỉnh kiến trúc theo thời gian.
Nếu câu hỏi của bạn là "tôi có thể lợi dụng nhiều lõi giữa nhiều ứng dụng", câu trả lời nằm với O/S của bạn nhiều hơn ZeroMQ. Lớp I/O của bạn có thể xử lý tải không? Chắc là đúng.
Và nếu câu hỏi của bạn là, "tôi có thể sử dụng ZeroMQ trên một đám mây 10K-16K hộp", sau đó câu trả lời là "có, điều này đã được chứng minh trong thực tế".
Cảm ơn Pieter, tôi có nghĩa là lõi trải rộng trên nhiều hộp. Bạn có biết bất kỳ giấy tờ nào thảo luận về mức độ khả năng mở rộng này hay bất kỳ trang web tham chiếu nào có kích thước này không? –
Vì vậy, ngay cả với OpenAMQ, chúng tôi đã mở rộng quy mô sản xuất đến các hộp 3K-4K (mỗi lõi), nói chuyện với một nhà môi giới duy nhất. Đây là cấp độ cơ bản của tỷ lệ của bất kỳ luồng 1-N nào trong 0MQ: chỉ giới hạn bởi số lượng ổ cắm mà hệ điều hành của bạn có thể xử lý. –
http://stackoverflow.com/questions/8361738/is-zeromq-really-reliable-and-scalable –