14

Khi nào tôi sẽ sử dụng hàng đợi thư như ironMQ và khi nào tôi sẽ sử dụng nhân viên xử lý công việc như ironWorker?Khi nào cần sử dụng hàng đợi tin nhắn và thời điểm sử dụng nhân viên nền điện toán đám mây

Tôi vừa mới bắt đầu nghiên cứu về hai chủ đề này và tôi thấy khó phân biệt giữa hai cách sử dụng. Tôi hiểu một công nhân ít nhiều là một sandbox sẽ chạy một chương trình trong một môi trường khác bên ngoài máy chủ ứng dụng để tăng trải nghiệm người dùng. Tôi cũng hiểu rằng một hàng đợi tin nhắn giống như thay thế cơ sở dữ liệu của nó theo đó một nhiệm vụ được thêm vào hàng đợi và sau đó một máy chủ/lập trình khác lắng nghe nhiệm vụ đó và sau đó sẽ xử lý nó. Tuy nhiên, mặc dù tôi nghĩ rằng tôi hiểu những gì họ đang gặp khó khăn khi phân biệt khi tôi sẽ sử dụng mỗi một và tại sao.

Nếu tôi hiểu chính xác, tôi sẽ sử dụng một nhân viên cho một nhiệm vụ như xử lý hình ảnh. Nhưng tại sao tôi không thể sử dụng hàng đợi tin nhắn cho điều đó và quan trọng hơn là tại sao không? Chắc chắn tôi chỉ có thể có một URL hình ảnh xếp hàng trong ironMQ và sau đó có một chương trình khác lấy và xử lý nó. Trong đầu tôi có vẻ như là một bước phụ để tôi tránh điều đó.

Hàng đợi thư có vẻ khá vô nghĩa đối với tôi đối với các tác vụ phổ biến khi có sẵn công nhân. Chắc chắn cho các nhiệm vụ không chuyên sâu như đăng một bình luận tôi có thể có một công nhân làm điều đó?

Tôi có thể đã hiểu sai sự khác biệt giữa từng công cụ và nếu có, vui lòng đặt tôi thẳng. Nếu không, xin vui lòng giúp đỡ.

Trả lời

11

Chúng có liên quan chặt chẽ nên tôi có thể hiểu được sự nhầm lẫn. Cả hai đều là hệ thống dựa trên hàng đợi, một là hàng đợi thông điệp, một là hàng đợi công việc/công việc.Dưới đây là nguyên tắc chung của ngón tay cái:

  • Bạn sẽ sử dụng IronMQ nếu bạn muốn chạy các quy trình/máy chủ của người tiêu dùng/công nhân.
  • Bạn sẽ sử dụng IronWorker nếu bạn muốn Iron.io để quản lý các quy trình/máy chủ của người tiêu dùng/công nhân. Bạn cũng nhận được một loạt các tính năng/lợi ích khác bằng cách sử dụng IronWorker, không chỉ thực tế là bạn không phải quản lý máy chủ của riêng mình và mở rộng quy mô của chúng, v.v.

Vì vậy, không, bạn không cần thư xếp hàng nếu bạn đang sử dụng IronWorker vì IronWorker là hàng đợi tin nhắn của bạn + việc xử lý hàng đợi đó của bạn.

Không thêm bất kỳ sự nhầm lẫn nào, nhưng một số người sử dụng IronWorker và IronMQ cùng với nhau, với công nhân kéo thư ra khỏi IronMQ. Mô hình này là tốt cho các nhiệm vụ rất ngắn để phân bổ các thiết lập/teardown của một công nhân (làm cho các kết nối cơ sở dữ liệu hoặc bất cứ điều gì công nhân đã làm để thiết lập).

+1

+1 để có câu trả lời dễ hiểu và chính xác cho câu trả lời dễ hiểu. Cảm ơn bạn –

4

Hàng đợi tin nhắn hữu ích khi bạn muốn gửi một số dữ liệu đến quy trình khác, một phần của ứng dụng hoặc thậm chí là ứng dụng khác. Nó hoạt động như đường ống, chuyển dữ liệu sang phía bên kia. Ví dụ, tôi có 10 cửa hàng trực tuyến nơi khách hàng mua hàng. Tôi muốn xử lý tất cả các lần kiểm tra trên một máy chủ. Có một số cách để kết nối các cửa hàng với trung tâm xử lý:

  1. Đặt API trên máy chủ trung tâm xử lý kiểm xuất; yêu cầu nguồn nhân lực để viết mã API, API và khách hàng ở bên cửa hàng phải không an toàn (các lần thanh toán phải được gửi đến trung tâm xử lý).
  2. Đặt các kiểm tra cho DB từ máy chủ cửa hàng, tải chúng lên máy chủ xử lý; nó yêu cầu truy cập vào cùng một DB từ các cửa hàng và trung tâm xử lý, đôi khi, không đủ an toàn. Lưu ý, việc sử dụng máy chủ DB riêng biệt đó phải hoạt động như hàng đợi thông báo. Nó phải có khả năng mở rộng, vì vậy, tôi cần phải chi tiền cho cơ sở hạ tầng và quản trị viên.
  3. Gửi tới hàng đợi tin nhắn từ cửa hàng, nhận được từ hàng đợi tin nhắn ở phía bên kia; yêu cầu cài đặt dịch vụ hàng đợi thông báo và hỗ trợ cơ sở hạ tầng.

dịch vụ đám mây, như IronMQ, làm hỗ trợ cơ sở hạ tầng, cung cấp thư viện đơn giản cho nhiều ngôn ngữ, có giao diện người dùng dựa trên web lớn vv

Cùng cho ironworker vv hệ thống xử lý không đồng bộ. Ví dụ: nếu tôi có ứng dụng nhỏ, tôi có thể thực hiện các công việc đó ngay trên máy chủ của mình. Nó chỉ yêu cầu sử dụng thư viện chuyên ngành. Trong trường hợp ứng dụng trung bình, tôi có thể thiết lập máy chủ và cài đặt phần mềm để xử lý các tác vụ không đồng bộ. Nếu tôi có ứng dụng rất lớn với rất nhiều nhiệm vụ, nó yêu cầu hỗ trợ cơ sở hạ tầng có thể mở rộng, nhiệm vụ cân bằng tải, v.v.

Các công ty cung cấp dịch vụ đám mây cho các nhà phát triển. Họ cung cấp API dễ dàng cho các dịch vụ của họ, cơ sở hạ tầng hỗ trợ và cung cấp nhiều thư viện ứng dụng cho các ngôn ngữ khác nhau.

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