Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Newbie ứng dụng thời gian thực - Node.JS + Redis hoặc RabbitMQ -> client / server như thế nào?

Về mặt kiến ​​trúc, cả hai lựa chọn của bạn đều giống như việc lưu trữ dữ liệu trong máy chủ cơ sở dữ liệu Oracle để ứng dụng khác truy xuất.

Cả giải pháp RabbitMQ và Redis đều yêu cầu ứng dụng của bạn phải kết nối với một máy chủ trung gian xử lý truyền thông dữ liệu. Redis giống Oracle nhất, vì nó có thể được sử dụng đơn giản như một cơ sở dữ liệu liên tục với một API mạng. Nhưng RabbitMQ hơi khác một chút vì MQ Broker không thực sự chịu trách nhiệm về việc lưu giữ dữ liệu. Nếu bạn định cấu hình đúng và sử dụng các tùy chọn phù hợp khi xuất bản tin nhắn, thì RabbitMQ sẽ thực sự duy trì dữ liệu cho bạn nhưng bạn không thể lấy dữ liệu ra ngoại trừ như một phần của quy trình xếp hàng tin nhắn thông thường. Nói cách khác, RabbitMQ là để truyền đạt thông điệp và chỉ cung cấp sự bền bỉ như một cách khôi phục sau sự cố mạng hoặc sự cố hệ thống.

Tôi khuyên bạn nên sử dụng RabbitMQ và bất kỳ ngôn ngữ lập trình nào mà bạn đã quen thuộc. Vì M trong LAMP thường được hiểu là MySQL, điều này có nghĩa là bạn sẽ không sử dụng MySQL hoặc chỉ sử dụng nó để lưu trữ lâu dài dữ liệu chứ không phải cho giao tiếp thời gian thực.

Trang web RabbitMQ có một lượng lớn tài liệu về cách xây dựng ứng dụng với AMQP. Tôi khuyên bạn rằng sau khi cài đặt RabbitMQ, bạn nên đọc qua tài liệu cho rabbitmqctl và sau đó tạo một vhost để thử nghiệm. Bằng cách đó, thật dễ dàng để xóa các thử nghiệm của bạn mà không cần đặt lại mọi thứ. Tôi cũng khuyên bạn chỉ nên sử dụng trao đổi chủ đề vì bạn có thể mô phỏng hành vi của trao đổi trực tiếp và trao đổi fanout bằng cách sử dụng ký tự đại diện trong routing_key. Hãy nhớ rằng bạn chỉ xuất bản tin nhắn cho các trao đổi và bạn chỉ nhận được tin nhắn từ hàng đợi. Sàn giao dịch chịu trách nhiệm về việc khớp mẫu mã routing_key của thông báo với khóa_ ràng buộc của hàng đợi để xác định hàng đợi nào sẽ nhận được bản sao của thông báo. Bạn nên học toàn bộ mô hình AMQP ngay cả khi bạn chỉ định gửi tin nhắn đến một hàng đợi có cùng tên với routing_key.

Nếu bạn đang xây dựng ứng dụng khách của mình trong trình duyệt và bạn muốn xây dựng một nguyên mẫu, thì bạn nên xem xét chỉ sử dụng XHR ngay hôm nay và sau đó chuyển sang một cái gì đó như Kamaloka-js, một triển khai Javascript thuần túy của AMQP (Giao thức AMQ). là giao thức tiêu chuẩn được sử dụng để giao tiếp với nhà môi giới tin nhắn RabbitMQ. Nói cách khác, xây dựng nó với những gì bạn biết ngày hôm nay và sau đó tăng tốc nó sau này, những thứ (AMQP) có tương lai lâu dài trong hộp công cụ của bạn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cần trợ giúp về khái niệm trong Redis / NoSQL

  2. Redis with Resque and Rails:Lệnh ERR không được phép khi sử dụng bộ nhớ> 'maxmemory'

  3. Khôi phục dữ liệu redis từ máy chủ thành máy chủ

  4. Hết thời gian cấp tốc và phiên làm lại

  5. Làm cách nào để triển khai hàng đợi phân tán đồng thời duy nhất này trong bất kỳ nền tảng MQ nào?