Hầu hết các api hiện đại đều được xây dựng bằng cách sử dụng json với thông báo Yêu cầu/Trả lời qua Http. Kể từ zeromq là một vận chuyển trên tcp, có thể json dựa trên api được xây dựng trên zeromq? Nếu vậy, lợi thế sẽ là gì? Việc sử dụng là i) các nhà phát triển viết ứng dụng cho khách hàng/thiết bị giao tiếp với một hoặc nhiều máy chủ web và ii) máy chủ web liên lạc với máy chủ web.api dựa trên json trên zeromq
Trả lời
Có, API dựa trên json có thể được xây dựng trên ZeroMQ thay vì HTTP. Nó sẽ yêu cầu ổ cắm REQ/REP. Tuy nhiên, nó không có vẻ là một lựa chọn tốt.
Ưu điểm chính của phương pháp JSON + HTTP là tính di động. JSON + HTTP được hỗ trợ ra khỏi hộp bởi hầu như bất kỳ môi trường lập trình nào, ZeroMQ không được hỗ trợ rộng rãi như vậy (không hỗ trợ trong trình duyệt JS chẳng hạn). Ngoài ra, ZeroMQ không quá khó thiết lập, vì vậy người tiêu dùng dịch vụ có thể sẽ không hài lòng với lựa chọn đó.
Mặt khác, lợi thế chính của ZeroMQ là hiệu suất: thật tuyệt nếu bạn cần đẩy nhiều megabyte (hoặc có thể là gigabyte) dữ liệu mỗi giây. Mã hóa/giải mã JSON thực sự nhanh, nhưng kích thước cũng quan trọng đối với loại tác vụ này. Bất kỳ khung tuần tự hóa nhị phân nào có vẻ là một lựa chọn tốt hơn, có rất nhiều: protobuf, tiết kiệm, BSON, kryo, avro, v.v.
Vì vậy, tôi sẽ tiếp tục sử dụng JSON + HTTP cho các API dịch vụ web: HTTP hiện đại các công cụ máy chủ cung cấp hiệu suất tuyệt vời và khả năng mở rộng. Và ZeroMQ là một lựa chọn tuyệt vời để giao tiếp trong một môi trường được kiểm soát bởi vì các tính năng đồng thời của nó và các mẫu sử dụng được xác định rõ.
- 1. Trả về xml hoặc json từ api MVC web dựa trên yêu cầu
- 2. Có thể chạy ZeroMQ trên Arduino
- 3. Từ chối bài đăng dựa trên JSON Ajax với html
- 4. Trình soạn thảo JSON dựa trên GUI hoặc dựa trên web hoạt động giống như trình khám phá thuộc tính
- 5. Flickr API lấy hình ảnh dựa trên vị trí
- 6. Cách xử lý bảo mật/xác thực trên API web dựa trên DNN
- 7. Serialization dựa trên trường Jackson
- 8. Tìm kiếm trên iTunes API JSON trả về 403 bị cấm trên máy chủ
- 9. Mono.WebBrowser dựa trên Gtk trên Windows
- 10. Phông chữ dựa trên Vector trên OpenGL
- 11. Dựa trên Perl trên Windows 7
- 12. OpenGraph trên trang web dựa trên Ajax
- 13. CMS dựa trên Yii?
- 14. Node.JS dựa trên ESB
- 15. Tôi có thể sử dụng ZeroMQ với HAProxy, một bộ cân bằng tải dựa trên phần mềm không?
- 16. Trình duyệt REST API dựa trên web (trình khám phá, trình điều hướng, cờ bạc)?
- 17. JSON trên Android - serialization
- 18. Các phương pháp hay để thiết kế API dựa trên Websocket
- 19. Độ phân giải loại dựa trên thuộc tính trong JSON.NET
- 20. tự CSS dựa trên Selector đặc
- 21. Chạy JSON với AFNetworking trên IOS
- 22. Thuộc tính dựa trên Gradle
- 23. antcall dựa trên điều kiện
- 24. split chuỗi dựa trên regexp
- 25. git pull dựa trên SHA
- 26. Scala: Lọc dựa trên loại
- 27. Khóa chính dựa trên năm?
- 28. Một PowerShell dựa trên PowerShell?
- 29. Khung CSS dựa trên SMACSS
- 30. Ảnh trên Google+ api
Vấn đề về tính di động thực sự là câu trả lời tôi đã làm sau. Sẽ gắn bó với json + http api của chúng tôi. Câu trả lời chính xác. Cám ơn rất nhiều. –
@dbv Bạn được chào đón. Tôi đánh giá cao "+1" :) – Wildfire
một cách tiếp cận lai hữu ích trong một số trường hợp - HTTP + JSON dưới dạng API công khai và sử dụng hệ thống nhắn tin JSON chính xác * thông qua zeromq để phân phối tác vụ cho các nút công việc của bạn. – minrk