click

Rabbitmq Là Gì – Tìm Hiểu Và Sử Dụng Rabbitmq

Rabbitmq La Gi Tim Hieu Va Su Dung Rabbitmq

Rabbitmq Là Gì – Tìm Hiểu Và Sử Dụng Rabbitmq

Trong bản vẽ thiết kế, xây dựng cloud (hay microservices), những ứng dụng, đc phân thành những khối độc lập nhỏ dại, dại hơn để rất rất có thể dễ dàng và đơn giản, dễ dàng và đơn giản, và đơn giản và giản dị, develop, deploy and maintain. Hãy thử tưởng tượng, bạn chứa một bản vẽ thiết kế, xây dựng cloud
có rất nhiều, service and nhiều request mỗi giây, bạn rất cần phải, đảm bảo an toàn, tin cậy, rằng không sống sót, ngẫu nhiên một request nào bị mất and web service của bạn luôn luôn sẵn sàng sẵn sàng, đảm nhiệm, request mới sửa chữa
thay vì locked bởi đang xử lí request trước kia,
tương tự như, phải đảm bảo an toàn, tin cậy, rằng những service tiếp xúc
cùng với nhau, một
phương pháp trơn tru and hiệu quả. Bài Viết: Rabbitmq là gì Vậy bạn làm thế nào,? Câu vấn đáp đó đó
này là Message Broker!

Message broker là gì?

Message broker (hay còn được gọi, là integration broker hoặc interface engine) là 1 trong các, trong số những module trung gian trung chuyển message từ người gửi tới, người nhận. Nó là 1 trong các, trong số những mô hình, bản vẽ thiết kế, xây dựng (architentural pattern) để check, trung chuyển and điều phối message; làm trung gian trong số những ứng dụng,
cùng với nhau,, tối giản hóa tiếp xúc trong số những ứng dụng, đó and để tăng hiệu quả tối đa cho việc tách ra những khối nhỏ dại, dại hơn. Trách nhiệm, chính của một Message broker là đảm nhiệm, những message từ những ứng dụng, and triển khai, triển khai tiến hành, triển khai, triển khai một làm việc thao tác làm việc nào đó. Hãy cùng nhìn vào sequence diagram
Phía bên dưới, đây:

*

Message Broker pattern sequence diagram Như ta rất rất có thể thấy thấy,, trong
quy trình tiến độ Initialize, Service1 and Sevice2 init, rồi tiếp sau đó, load proxy and register tới, Broker. Từ đó, Broker sẽ trung chuyển những message tới, với proxy đã đc register từ trước. Pattern này sẽ đã có được, những quyền hạn sau: Service1 and Service2 không rất cần thiết, phải ghi nhận, nhau. Nó chỉ việc gửi message tới, proxy, rồi từ đó proxy sẽ forward message tới, Broker. Rồi từ đó Broker sẽ forward message tới, Service1 and Service2 mà chúng đã đăng kí nhận message từ trước.Service1 and Service2 tiếp xúc trung gian qua Broker nên
mặc dù rằng có không giống nhau, về ngữ điệu thì vẫn tiếp xúc thành công.Với design pattern này,
chúng ta, cũng sẽ có, thể thiết lập
chính sách bất như nhau, (asynchronous).
So với, Service1 thì nó không cần
lưu ý quan tâm
lúc nào, message tới, tay Service2 hay
lúc nào, Service2 giải quyết và xử lý, và xử lý xong, nó chỉ cần đấy message tới, Message Broker là xong việc. Service2 sẽ lấy message ngẫu nhiên
lúc nào, nó muốn. Đặc tính này rất rất có thể đc tận dụng để ra mắt, và sinh hoạt những mạng lưới mạng lưới hệ thống tàng trữ, and giải quyết và xử lý, và xử lý log. Hiện giờ
có rất nhiều, những message broker software rất nói cách khác tới, như: Amazon Web Services (AWS) Simple Queue Service (SQS), Apache Kafka, Apache ActiveMQ. Nhưng thông dụng nhất trong số những
các chiếc, tên kể trên
đó chính là RabbitMQ!

Xem Ngay:  chất ức chế là gì, nghĩa của từ ức chế

RabbitMQ là gì?

RabbitMQ là 1 trong các, trong số những Message broker open-source, thuở đầu đc cần sử dụng cho Advanced Message Queuing Protocol (AMQP), tiếp sau đó, đã đc đổi mới, và tăng trưởng, để trợ giúp Streaming Text Oriented Messaging Protocol (STOMP), Message Queuing Telemetry Transport (MQTT), and những giao thức khác. Tuy vậy, trong content nội dung bài viết này thì mình sẽ không thể, đi sâu vào những protocol nói ở trên. RabbitMQ đc viết bằng Erlang, một ngữ điệu không thông dụng nhưng khá phải chăng và hợp lí với những việc làm của Message Broker. RabbitMQ and trong messaging
Kết luận cần sử dụng những thuật như sau: Producing có nghĩa dễ dàng và đơn giản, là gửi. Ứng dụng, gửi message đc gọi là Producer.

*

Queue là 1 trong các, trong số những post box
Bên trong, RabbitMQ. Message dịch rời, qua RabbitMQ and ứng dụng, của bạn nhưng chúng chỉ rất rất có thể đc lưu trong queue. Queue đc số lượng, số lượng số lượng giới hạn, trong memory and disk của host. Về thực tiễn, nó là 1 trong các, trong số những
bộ nhớ lưu trữ, tàng trữ, đệm message với tài liệu, to. Nhiều producer rất rất có thể gửi message vào
Một trong, những queue and nhiều consumer rất rất có thể nhận data xuất phát từ, 1 queue:

*

Consuming có nghĩa tựa như như nhận. Consumer là 1 trong các, trong số những ứng dụng,
Phần đông, chờ để nhận message:

*

Nhắc nhở, rằng producer, consumer and broker không sẽ phải, chịu ràng buộc vào cùng một host. Trên trong trong thực tiễn, không nhiều nếu như không, muốn nói là rất ít
có những ứng dụng, như vậy,.
Một trong những, những ứng dụng cũng sẽ có, thể vừa là producer and vừa là consumer. Xem Ngay: Frontier Là Gì – Nghĩa Của Từ Frontier

Xem Ngay:  Tác Phong Là Gì - Thực Trạng Văn Hóa Đúng Giờ Ở Việt Nam

Hello World!

Trong content nội dung bài viết này, những những những
các bạn sẽ, cần sử dụng Bunny Ruby Client
Để triển khai, ví dụ về một producer gửi message and một consumer nhận message and in ra màn hình hiển thị. Trong hình
Phía bên dưới, đây, P.producer and Cconsumer, box
ở vị trí chính giữa là 1 trong các, trong số những queue:

*


Thứ nhất,, ta thiết lập Bunny: gem install bunny –version “>= 2.13.0”

Sending

*

Những những những
các bạn sẽ, viết message producer trong sender.rb and message consumer trong receiver.rb. producer sẽ
liên kết tới, RabbitMQ, gửi một message rồi exit. #!/usr/bin/env rubyrequire “bunny”connection = Bunny.new(hostname: “rabbit.local”)connection.startconnection sẽ lấy một socket connection, giải quyết và xử lý, và xử lý version của protocol, xác thực and những thứ khác. Trong ví dụ này, ta sẽ connect tới, local, nếu như muốn, connect tới, một host khác thì chỉ cần cần sử dụng option :hostname and chỉ định domain name hoặc xung quanh vị trí đặt, IP của chính mình, nó. Tiếp tới,,
toàn bộ
tất cả chúng ta, tạo một channel, một queue để gửi message: channel = connection.create_channel # tạo một channelqueue = channel.queue(“hello”) # tạo queue tên là “hello”channel.default_exchange.publish(“Hello World!”, routing_key: queue.name)puts ” Sent “Hello World!””queue sẽ chỉ đc tạo nếu như nó, chưa xuất hiện, message là 1 trong các, trong số những byte array nên bạn cũng sẽ có, thể truyền ngẫu nhiên thứ gì
Bạn đang có nhu cầu, muốn. Sau cuối, ta close connecion: connection.close

Xem Ngay:  Hiệu Giá Kháng Thể Là Gì

Receiving

Giờ, consumer sẽ listen message từ RabbitMQ. Khác với producer, consumer sẽ chạy để listen message and in chúng ra màn hình hiển thị.

*

Cũng với, như như producer, ta mở connection and channel, khai báo queue, chăm chú rằng tên của queue phải giống queue bên sender.rb: #!/usr/bin/env rubyrequire “bunny”connection = Bunny.new(hostname: “rabbit.local”)connection.startchannel = connection.create_channel # tạo một channelqueue = channel.queue(“hello”) # tạo queue với tên giống với sender.rbỞ đây, ta cũng khai báo queue để vật chứng, và khẳng định chắc chắn, rằng queue đã sống sót, trước khi consumermessage. Bunny::Queue#subscribe sẽ deliver message từ queue and nó cũng là 1 trong các, trong số những callback đc triển khai, triển khai khi RabbitMQ đẩy message tới, consumer một
phương pháp bất như nhau,: begin puts ” Waiting for messages. To, exit press CTRL+C” queue.subscribe(block: true) do |_delivery_info, _properties, toàn thân toàn thân,| puts ” Received #” endrescue Interrupt => _ connection.close exit(0)endỞ đây, để tránh, tránh, trường hợp receiver.rb kết thúc ngay lập tức, Bunny::Queue#subscribe cần sử dụng một block để chờ thread đc triển khai, triển khai. Xem Ngay: Associate With Là Gì – Nghĩa Của Từ Associate Giờ đây, chạy consumer: ruby receiver.rbsau đó chạy sender: ruby sender.rbconsumer sẽ in message nó nhận đc từ producer trải qua RabbitMQ. Consumer sẽ vẫn, tiếp tục chạy để chờ message. Thể Loại: Giải bày Kiến Thức Cộng Đồng

Bài Viết: Rabbitmq Là Gì – Tìm Hiểu Và Sử Dụng Rabbitmq Thể Loại: LÀ GÌ Nguồn Blog là gì: https://hethongbokhoe.com Rabbitmq Là Gì – Tìm Hiểu Và Sử Dụng Rabbitmq

Leave a Reply

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