• About
  • Advertise
  • Privacy & Policy
  • Contact
DevZone
  • Home
  • News
  • Dev
    • All
    • Algorithm
    • Architecture
    • Database
    • Design
    • DevOps
    • IoT
    • Network
    • Test
    • Web
    Phương thức xử lý mảng trong javascript

    Phương thức xử lý mảng trong javascript

    Bảo vệ content, chống copy nội dung web!

    Bảo vệ content, chống copy nội dung web!

    Lưu ý mệnh đề NOT IN trong SQL

    Lưu ý mệnh đề NOT IN trong SQL

    SOLID Principles: Dependency Inversion Principle

    SOLID Principles: Dependency Inversion Principle

    Solid Principles: Interface Segregation Principle

    Solid Principles: Interface Segregation Principle

    Tìm hiểu về composer.json schema (phần 2 – autoload)

    Tìm hiểu về composer.json schema (phần 2 – autoload)

    IPC – Đằng sau sự thành công của Chromium

    IPC – Đằng sau sự thành công của Chromium

    Dựng layout website với CSS Grid Layout

    Dựng layout website với CSS Grid Layout

    Golang cơ bản (p1)

    Golang cơ bản (p1)

    Trending Tags

    • Idea
    • Lifestyle
    No Result
    View All Result
    • Home
    • News
    • Dev
      • All
      • Algorithm
      • Architecture
      • Database
      • Design
      • DevOps
      • IoT
      • Network
      • Test
      • Web
      Phương thức xử lý mảng trong javascript

      Phương thức xử lý mảng trong javascript

      Bảo vệ content, chống copy nội dung web!

      Bảo vệ content, chống copy nội dung web!

      Lưu ý mệnh đề NOT IN trong SQL

      Lưu ý mệnh đề NOT IN trong SQL

      SOLID Principles: Dependency Inversion Principle

      SOLID Principles: Dependency Inversion Principle

      Solid Principles: Interface Segregation Principle

      Solid Principles: Interface Segregation Principle

      Tìm hiểu về composer.json schema (phần 2 – autoload)

      Tìm hiểu về composer.json schema (phần 2 – autoload)

      IPC – Đằng sau sự thành công của Chromium

      IPC – Đằng sau sự thành công của Chromium

      Dựng layout website với CSS Grid Layout

      Dựng layout website với CSS Grid Layout

      Golang cơ bản (p1)

      Golang cơ bản (p1)

      Trending Tags

      • Idea
      • Lifestyle
      No Result
      View All Result
      DEVZONE
      No Result
      View All Result
      Home Dev Architecture

      Message queue – Thành phần giao tiếp của các ứng dụng

      kimtung by kimtung
      November 30, 2019
      in Architecture, Dev
      0
      Message queue  – Thành phần giao tiếp của các ứng dụng

      Message queue là gì?

      Message queue là một thành phần trung gian giữa các ứng dụng, cung cấp giải pháp trao đổi thông tin giữa các ứng dụng. Bên gửi message sẽ được gọi là sender, bên nhận message sẽ được gọi là receiver.

      Message queue

      Message queue cung cấp giải pháp gửi message bất đồng bộ giữa sender và receiver. Các message sau khi được gửi từ sender sẽ được lưu trữ có thứ tự trong queue và sẽ được gửi dần xuống cho receiver xử lý. Mô hình này tạo ra sự an toàn cho quá trình gửi – nhận message, ngăn ngừa mất mát dữ liệu và cho phép hệ thống hoạt động ổn định khi có sự cố.

      Mô hình này cũng cho phép phát triển hệ thống thành các quy trình và ứng dụng tách biệt. Đảm bảo việc giao tiếp giữa các ứng dụng luôn thông suốt và làm cho kiến trúc trở nên đáng tin cậy hơn.

      Lợi ích khi sử dụng message queue.

      Message queue đang được sử dụng rộng rãi và mang nhiều lợi ích bao gồm:

      • Giải pháp gửi nhận thông tin đáng tin cậy, không mất mát dữ liệu
      • Giải pháp kết nối giữa các ứng dụng là an toàn, và luôn cân bằng tải
      • Nâng cao hiệu năng của hệ thống
      • Tính linh hoạt: Message queue hỗ trợ hầu hết các ngôn ngữ lập trình phổ biến như java, C, C++, nodejs, python… Hỗ trợ các giao thức bao gồm MQTT, AMQP, REST và các giao thức khác.

      Một số so sánh

      Mô hình Point – to – Point vs Pub/Sub

      • Message queue sử dụng point – to – point messaging pattern, trong đó một ứng dụng gửi tin nhắn đến queue (sender). Một ứng dụng nhận message từ queue (receiver) và xử lý nó. Nó là mối quan hệ 1 – 1 chặt chẽ một người gửi và một người nhận và message chỉ được xử lý duy nhất một lần.
      • Nếu ứng dụng cần nhiều bên xử lý cùng một message thì point – to – point sẽ không đáp ứng được. Đến lúc này cần kết hợp nhiều queue lại hoặc sử dụng mô hình pub/sub để giải quyết bài toán.
      Mô hình Pub/Sub
      • Trong mô hình pub/sub, ứng dụng xuất bản message sẽ được gọi là producer, ứng dụng nhận message được gọi là consumer. Producer sẽ xuất bản message vào những topic và consumer sẽ đăng ký nhận message từ topic. Khi một message được xuất bản thì các consumer sẽ nhận được các bản sao của message đó. Do đó, nhiều consumer có thể nhận và xử lý cùng một message từ topic.  Hay nói cách khác, mô hình pub/sub sẽ tạo ra một queue vô cùng mạnh mẽ.
      • Hầu hết các giải pháp giao tiếp giữa các ứng dụng bây giờ đều sử dụng 2 mô hình point – to – point và Pub/Sub messaging system. Một số message queue phổ biến đáp ứng được cả 2 mô hình trên như Active MQ, Rabbit MQ, Kafka …

      Message queue vs message bus

      • Message bus được hiểu nôm na là một dịch vụ cho phép rất nhiều ứng dụng tách rời có thể giao tiếp được với nhau mà vẫn đảm bảo được mô hình phân tán. Khi sử dụng message bus thì các ứng dụng buộc phải sử dụng chung một tập lệnh, một kiểu giao thức, một chuẩn định dạng chung cho message để liên lạc tới bus.
      Mô hình Message Bus
      • Khi sử dụng message bus, các message phải được chuyển đổi về chung một định dạng. Còn khi sử dụng message queue thì chúng có thể là bất cứ định dạng nào mà ta không cần quan tâm đến.

      Message queue vs  web service

      • Các ứng dụng có thể giao tiếp trực tiếp với nhau thông qua các web service hoặc API dựa trên các giao thức tiêu chuẩn như SOAP, HTTP thay vì sử dụng một message queue.  Các web service vẫn đang được sử dụng rộng rãi trên các hệ thống phân tán vì nó tương đối đơn giản và dễ thực hiện. Và nó là sự thay thế tốt cho message queue trong một số vấn đề nhất định.
      • Tuy nhiên, không giống như message queue, các web service không đảm bảo việc vận chuyển data được ổn định. Nếu có một sự cố mạng hoặc một sự quá tải từ bên phía xử lý message thì web service sẽ dẫn đến tình huống làm mất mát dữ liệu. Như vậy ta phải xây dựng một ứng dụng nữa để đảm bảo nếu các tình huống trên xảy ra thì dữ liệu vẫn được toàn vẹn. Các web service cũng thiếu đi mô bình pub/sub. Như vậy message queue sẽ cung cấp khả năng chịu lỗi, khả năng xử lý khối dữ liệu lớn để đảm bảo khi có sự cố xảy ra thì hệ thống vẫn hoạt động ổn định.
      • Để tìm hiểu khi nào nên sử dụng API khi nào nên sử dụng Message queue cúng ta có thể tham khảo thêm tại đây.

      Tags: hàng đợimessage queuequeue
      Thả tim (3 lượt thả tim)
      Loading...
      Previous Post

      RRWEB.IO tracking hành vi người dùng

      Next Post

      Mã hóa Base64

      kimtung

      kimtung

      Next Post
      Mã hóa Base64

      Mã hóa Base64

      Leave a Reply Cancel reply

      Your email address will not be published. Required fields are marked *

      Recent News

      Lập trình viên không dùng máy Mac nhiều như người ta đã nghĩ

      Lập trình viên không dùng máy Mac nhiều như người ta đã nghĩ

      July 25, 2020
      Dấu hiệu nhận biết sức khỏe qua liềm móng tay

      Dấu hiệu nhận biết sức khỏe qua liềm móng tay

      June 26, 2020
      Phương thức xử lý mảng trong javascript

      Phương thức xử lý mảng trong javascript

      May 31, 2020
      Lợi ích của việc tập thể dục thường xuyên

      Lợi ích của việc tập thể dục thường xuyên

      May 25, 2020
      DEVZONE

      Browse by Category

      • Algorithm
      • Architecture
      • Database
      • Design
      • Dev
      • DevOps
      • Idea
      • IoT
      • Lifestyle
      • Network
      • News
      • Test
      • Uncategorized
      • Web
      • About
      • Advertise
      • Privacy & Policy
      • Contact

      © 2019 Devzone

      No Result
      View All Result

      © 2019 Devzone