{"id":28607,"date":"2021-07-28T11:52:53","date_gmt":"2021-07-28T04:52:53","guid":{"rendered":"https:\/\/wiki.tino.org\/staging\/?p=28607"},"modified":"2021-11-23T16:20:57","modified_gmt":"2021-11-23T09:20:57","slug":"rabbitmq-la-gi","status":"publish","type":"post","link":"https:\/\/tino.vn\/blog\/rabbitmq-la-gi\/","title":{"rendered":"RabbitMQ l\u00e0 g\u00ec? 6 l\u1ee3i \u00edch v\u00e0 t\u00ednh n\u0103ng n\u1ed5i b\u1eadt c\u1ee7a RabbitMQ"},"content":{"rendered":"\n<p><strong>L\u00e0m sao \u0111\u1ec3 c\u00e1c \u1ee9ng d\u1ee5ng kh\u00e1c nhau c\u00f3 th\u1ec3 giao ti\u1ebfp \u0111\u01b0\u1ee3c v\u1edbi nhau? Message broker l\u00e0 g\u00ec? RabbitMQ l\u00e0 g\u00ec? V\u00ec sao n\u00ean s\u1eed d\u1ee5ng RabbitMQ? Nh\u1eefng th\u1eafc m\u1eafc n\u00e0y c\u1ee7a b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c Tino Group gi\u1ea3i \u0111\u00e1p ngay trong b\u00e0i vi\u1ebft nh\u00e9!<\/strong><\/p>\n\n\n\n<h2 id=\"RabbitMQ_l\u00e0_g\u00ec?\"><a id=\"post-28607-_mwj8q1ve7zhe\"><\/a><strong>RabbitMQ l\u00e0 g\u00ec?<\/strong><\/h2>\n\n\n\n<p><strong>RabbitMQ <\/strong>l\u00e0 m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh ph\u1ea7n m\u1ec1m trung gian gi\u00fap c\u00e1c \u1ee9ng d\u1ee5ng, h\u1ec7 th\u1ed1ng hay server kh\u00e1c nhau c\u00f3 th\u1ec3 giao ti\u1ebfp, trao \u0111\u1ed5i d\u1eef li\u1ec7u v\u1edbi nhau. Nhi\u1ec7m v\u1ee5 c\u1ee7a RabbitMQ \u0111\u01b0\u1ee3c hi\u1ec3u \u0111\u01a1n gi\u1ea3n l\u00e0: <strong>nh\u1eadn message t\u1eeb nhi\u1ec1u ngu\u1ed3n => l\u01b0u tr\u1eef, s\u1eafp x\u1ebfp sao cho h\u1ee3p l\u00fd => \u0111\u1ea9y t\u1edbi \u0111\u00edch \u0111\u1ebfn.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1453.png\" alt=\"rabbitmq-la-gi\" class=\"wp-image-28609\" width=\"543\" height=\"376\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1453.png 400w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1453-300x208.png 300w\" sizes=\"(max-width: 543px) 100vw, 543px\" \/><\/figure><\/div>\n\n\n\n<p>L\u00e0 m\u1ed9t message broker m\u00e3 ngu\u1ed3n m\u1edf, c\u00f3 dung l\u01b0\u1ee3ng nh\u1eb9, d\u1ec5 d\u00e0ng tri\u1ec3n khai tr\u00ean r\u1ea5t nhi\u1ec1u h\u1ec7 \u0111i\u1ec1u h\u00e0nh l\u1eabn Cloud, v\u00ec th\u1ebf RabbitMQ v\u00f4 c\u00f9ng \u0111\u01b0\u1ee3c \u01b0a chu\u1ed9ng v\u00e0 tr\u1edf n\u00ean ph\u1ed5 bi\u1ebfn trong th\u1eddi gian qua.<\/p>\n\n\n\n<p>Kh\u00f4ng ch\u1ec9 nh\u1eefng doanh nghi\u1ec7p nh\u1ecf mu\u1ed1n ti\u1ebft ki\u1ec7m chi ph\u00ed s\u1eed d\u1ee5ng, ngay c\u1ea3 nh\u1eefng doanh nghi\u1ec7p l\u1edbn, h\u1ecd c\u0169ng \u0111ang s\u1eed d\u1ee5ng RabbitMQ cho c\u00f4ng vi\u1ec7c.<\/p>\n\n\n\n<h3 id=\"Message_broker_l\u00e0_g\u00ec?\"><a id=\"post-28607-_u39xuq5jre60\"><\/a><strong>Message broker l\u00e0 g\u00ec?<\/strong><\/h3>\n\n\n\n<p>Hi\u1ec3u m\u1ed9t c\u00e1ch \u0111\u01a1n gi\u1ea3n, <strong>message broker<\/strong> l\u00e0 m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh trung gian \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n nh\u1eb1m \u0111\u1ec3 ph\u1ee5c v\u1ee5 nhu c\u1ea7u giao ti\u1ebfp gi\u1eefa c\u00e1c \u1ee9ng d\u1ee5ng kh\u00e1c nhau v\u1edbi nhau m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng. B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 hi\u1ec3u <strong>message broker<\/strong> l\u00e0 m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh <strong>ph\u1ea7n m\u1ec1m trung chuy\u1ec3n tin nh\u1eafn<\/strong>.<\/p>\n\n\n\n<p>Ch\u01b0\u01a1ng tr\u00ecnh message broker s\u1ebd \u0111\u1ea3m nh\u1eadn vi\u1ec7c <strong>validating <\/strong>(x\u00e1c th\u1ef1c), <strong>transforming <\/strong>(t\u1ea1m d\u1ecbch: chuy\u1ec3n \u0111\u1ed5i) v\u00e0 <strong>routing <\/strong>(\u0111\u1ecbnh tuy\u1ebfn) cho messages gi\u1eefa c\u00e1c \u1ee9ng d\u1ee5ng v\u1edbi nhau.<\/p>\n\n\n\n<p>C\u00e1ch th\u1ee9c ho\u1ea1t \u0111\u1ed9ng c\u1ee7a message broker nh\u01b0 sau:<\/p>\n\n\n\n<p><strong>Producer <\/strong>(\u1ee9ng d\u1ee5ng g\u1eedi) s\u1ebd g\u1eedi m\u1ed9t message \u0111\u1ebfn m\u1ed9t <strong>server process<\/strong> (trong b\u00e0i l\u00e0 RabbitMQ) c\u00f3 kh\u1ea3 n\u0103ng s\u1eafp x\u1ebfp, \u0111\u1ecbnh tuy\u1ebfn, translation, persistence v\u00e0 delivery (g\u1eedi) \u0111\u1ebfn <strong>consumer <\/strong>(\u1ee9ng d\u1ee5ng nh\u1eadn).<\/p>\n\n\n\n<h3 id=\"M\u1ed9t_s\u1ed1_thu\u1eadt_ng\u1eef_li\u00ean_quan_\u0111\u1ebfn_RabbitMQ\"><a id=\"post-28607-_fhwx4d2yui1i\"><\/a><strong>M\u1ed9t s\u1ed1 thu\u1eadt ng\u1eef li\u00ean quan \u0111\u1ebfn RabbitMQ<\/strong><\/h3>\n\n\n\n<p>\u0110\u1ec3 \u0111\u1ea3m b\u1ea3o b\u00e0i vi\u1ebft truy\u1ec1n t\u1ea3i \u0111\u01b0\u1ee3c n\u1ed9i dung ch\u00ednh x\u00e1c nh\u1ea5t, Tino Group s\u1ebd gi\u1eef nguy\u00ean r\u1ea5t nhi\u1ec1u t\u1eeb ti\u1ebfng Anh. Tuy nhi\u00ean, b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o nh\u1eefng kh\u00e1i ni\u1ec7m, nh\u1eefng t\u1eeb ti\u1ebfng Anh Tino Group gi\u1eef nguy\u00ean t\u1ea1i \u0111\u00e2y:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Producer<\/strong>: \u1ee8ng d\u1ee5ng\/ ch\u01b0\u01a1ng tr\u00ecnh g\u1eedi message.<\/li><li><strong>Consumer<\/strong>: \u1ee8ng d\u1ee5ng\/ ch\u01b0\u01a1ng tr\u00ecnh nh\u1eadn message.<\/li><li><strong>Queue<\/strong>: Ho\u1ea1t \u0111\u1ed9ng l\u01b0u tr\u1eef c\u00e1c message.<\/li><li><strong>Message<\/strong>: hay <em>tin nh\u1eafn<\/em> l\u00e0 th\u00f4ng tin \u0111\u01b0\u1ee3c Producer truy\u1ec1n \u0111\u1ebfn Consumer th\u00f4ng qua message broker (trong b\u00e0i vi\u1ebft l\u00e0 RabbitMQ).<\/li><li><strong>Connection<\/strong>: l\u00e0 k\u1ebft n\u1ed1i TCP gi\u1eefa \u1ee9ng d\u1ee5ng\/ ch\u01b0\u01a1ng tr\u00ecnh v\u00e0 message broker.<\/li><li><strong>Channel<\/strong>: l\u00e0 k\u1ebft n\u1ed1i \u1ea3o trong m\u1ed9t Connection l\u00e0 m\u00f4i tr\u01b0\u1eddng \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c ho\u1ea1t \u0111\u1ed9ng nh\u01b0 publishing, consuming message t\u1eeb queue.<\/li><li><strong>Exchange<\/strong>: L\u00e0 n\u01a1i nh\u1eadn message \u0111\u01b0\u1ee3c publish t\u1eeb Producer v\u00e0 \u0111\u1ea9y ch\u00fang v\u00e0o queue d\u1ef1a v\u00e0o quy t\u1eafc c\u1ee7a t\u1eebng lo\u1ea1i Exchange. S\u1ebd ph\u00e2n t\u00edch r\u00f5 h\u01a1n \u1edf ph\u1ea7n sau.<\/li><li><strong>Binding<\/strong>: l\u00e0 <em>quy t\u1eafc<\/em> &#8211; <strong>rule,<\/strong> Exchange c\u00f3 nhi\u1ec7m v\u1ee5 li\u00ean k\u1ebft v\u00e0 routing message \u0111\u1ebfn queue.<\/li><li><strong>Routing key<\/strong>: M\u1ed9t key m\u00e0 Exchange d\u1ef1a v\u00e0o \u0111\u00f3 \u0111\u1ec3 quy\u1ebft \u0111\u1ecbnh c\u00e1ch \u0111\u1ec3 \u0111\u1ecbnh tuy\u1ebfn message \u0111\u1ebfn queue. C\u00f3 th\u1ec3 hi\u1ec3u n\u00f4m na, Routing key l\u00e0 \u0111\u1ecba ch\u1ec9 d\u00e0nh cho message.<\/li><li><strong>AMQP <\/strong>&#8211; <strong>Advanced Message Queuing Protocol<\/strong>: l\u00e0 m\u1ed9t <em>giao th\u1ee9c<\/em> (<strong>protocol<\/strong>) truy\u1ec1n message \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong RabbitMQ.<\/li><li><strong>User<\/strong>: hay ng\u01b0\u1eddi d\u00f9ng, m\u1ed7i ng\u01b0\u1eddi d\u00f9ng s\u1ebd c\u00f3 t\u00e0i kho\u1ea3n, m\u1eadt kh\u1ea9u kh\u00e1c nhau v\u00e0 nh\u1eefng quy\u1ec1n h\u1ea1n nh\u1ea5t \u0111\u1ecbnh \u0111\u01b0\u1ee3c ph\u00e2n c\u1ee5 th\u1ec3 trong RabbitMQ.<\/li><li><strong>Virtual host hay vi\u1ebft t\u1eaft l\u00e0 Vhost<\/strong>: hay m\u00e1y ch\u1ee7 \u1ea3o, l\u00e0 m\u1ed9t ph\u01b0\u01a1ng th\u1ee9c cho ph\u00e9p l\u01b0u tr\u1eef c\u00e1c \u1ee9ng d\u1ee5ng kh\u00e1c nhau d\u00f9ng chung RabbitMQ instance. User kh\u00e1c nhau s\u1ebd c\u00f3 quy\u1ec1n kh\u00e1c nhau v\u1edbi c\u00e1c Vhost; Queue v\u00e0 Exchange s\u1ebd ch\u1ec9 t\u1ed3n t\u1ea1i trong m\u1ed9t Vhost.<\/li><\/ul>\n\n\n\n<h3 id=\"RabbitMQ_c\u00f3_t\u00ednh_n\u0103ng_v\u00e0_l\u1ee3i_\u00edch_nh\u01b0_th\u1ebf_n\u00e0o?\"><a id=\"post-28607-_t2z0hehqro4l\"><\/a><strong>RabbitMQ c\u00f3 t\u00ednh n\u0103ng v\u00e0 l\u1ee3i \u00edch nh\u01b0 th\u1ebf n\u00e0o?<\/strong><\/h3>\n\n\n\n<h4 id=\"Asynchronous_Messaging\"><a id=\"post-28607-_e6dk3hp4yhj4\"><\/a><strong>Asynchronous Messaging<\/strong><\/h4>\n\n\n\n<p>RabbitMQ h\u1ed7 tr\u1ee3 r\u1ea5t nhi\u1ec1u giao th\u1ee9c message nh\u01b0: s\u1eafp x\u1ebfp h\u00e0ng \u0111\u1ee3i, g\u1eedi message, kh\u1ea3 n\u0103ng \u0111\u1ecbnh tuy\u1ebfn h\u00e0ng \u0111\u1ee3i linh ho\u1ea1t v\u00e0 nhi\u1ec1u lo\u1ea1i exchange kh\u00e1c.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1454.png\" alt=\"rabbitmq-la-gi\" class=\"wp-image-28610\" width=\"598\" height=\"350\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1454.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1454-300x176.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1454-768x450.png 768w\" sizes=\"(max-width: 598px) 100vw, 598px\" \/><\/figure><\/div>\n\n\n\n<h4 id=\"Developer_Experience\"><a id=\"post-28607-_y6bkm0r1rupq\"><\/a><strong>Developer Experience<\/strong><\/h4>\n\n\n\n<p>V\u1edbi m\u1ee9c \u0111\u1ed9 linh ho\u1ea1t c\u1ee7a RabbitMQ, b\u1ea1n c\u00f3 th\u1ec3 tri\u1ec3n khai tr\u00ean BOSH, Chef, Docket v\u00e0 c\u1ea3 Puppet. RabbitMQ kh\u00f4ng ch\u1ec9 t\u01b0\u01a1ng th\u00edch v\u1edbi ng\u00f4n ng\u1eef Erlang \u201cm\u1eb9 \u0111\u1ebb\u201d, RabbitMQ c\u00f2n c\u00f3 kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch v\u1edbi h\u1ea7u h\u1ebft c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh th\u00f4ng d\u1ee5ng nh\u01b0: Java, PHP, <a href=\"https:\/\/tino.vn\/blog\/html-css-javascript-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">JavaScript<\/a>, Go, Ruby, .NET,&#8230;<\/p>\n\n\n\n<h4 id=\"Distributed_Deployment\"><a id=\"post-28607-_oy49tmnvbx42\"><\/a><strong>Distributed Deployment<\/strong><\/h4>\n\n\n\n<p>B\u1ea1n c\u00f3 th\u1ec3 tri\u1ec3n khai RabbitMQ d\u01b0\u1edbi d\u1ea1ng c\u00e1c cluster c\u00f3 t\u00ednh kh\u1ea3 d\u1ee5ng cao v\u00e0 th\u00f4ng l\u01b0\u1ee3ng l\u1edbn t\u1eeb \u0111\u00f3 b\u1ea1n c\u00f3 th\u1ec3 ph\u00e1t tri\u1ec3n li\u00ean k\u1ebft to\u00e0n c\u1ea7u qua nhi\u1ec1u khu v\u1ef1c, l\u00e3nh th\u1ed5.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1455.png\" alt=\"rabbitmq-la-gi\" class=\"wp-image-28611\" width=\"588\" height=\"378\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1455.png 738w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1455-300x193.png 300w\" sizes=\"(max-width: 588px) 100vw, 588px\" \/><\/figure><\/div>\n\n\n\n<h4 id=\"Enterprise_&amp;_Cloud_Ready\"><a id=\"post-28607-_9v17c5qkpq0e\"><\/a><strong>Enterprise &amp; Cloud Ready<\/strong><\/h4>\n\n\n\n<p>V\u1edbi nh\u1eefng c\u00f4ng ngh\u1ec7 x\u00e1c th\u1ef1c, \u1ee7y quy\u1ec1n \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n d\u1ef1a tr\u00ean TLS v\u00e0 LDAP gia t\u0103ng \u0111\u1ed9 b\u1ea3o m\u1eadt l\u00ean r\u1ea5t cao. RabbitMQ c\u00f3 dung l\u01b0\u1ee3ng nh\u1eb9 v\u00e0 kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch v\u00e0 ph\u00e1t tri\u1ec3n m\u1ed9t c\u00e1ch d\u1ec5 d\u00e0ng tr\u00ean c\u00e1c <a href=\"https:\/\/tino.vn\/blog\/dien-toan-dam-may-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">public cloud c\u0169ng nh\u01b0 private cloud<\/a>.<\/p>\n\n\n\n<h4 id=\"Management_&amp;_Monitoring\"><a id=\"post-28607-_litrviu77dqe\"><\/a><strong>Management &amp; Monitoring<\/strong><\/h4>\n\n\n\n<p>B\u1ea1n ho\u00e0n to\u00e0n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c HTTP-API, c\u00e1c c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh v\u00e0 c\u1ea3 c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n th\u00e2n thi\u1ec7n v\u1edbi ng\u01b0\u1eddi d\u00f9ng \u0111\u1ec3 qu\u1ea3n l\u00fd, gi\u00e1m s\u00e1t RabbitMQ m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3 nh\u1ea5t.<\/p>\n\n\n\n<h4 id=\"Tools_&amp;_Plugins\"><a id=\"post-28607-_qph1ofh1y864\"><\/a><strong>Tools &amp; Plugins<\/strong><\/h4>\n\n\n\n<p>RabbitMQ cung c\u1ea5p r\u1ea5t nhi\u1ec1u tool v\u00e0 plugin \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n li\u00ean t\u1ee5c v\u1edbi kh\u1ea3 n\u0103ng nh\u01b0: t\u00edch h\u1ee3p, kh\u1ea3 n\u0103ng \u0111o l\u01b0\u1eddng v\u00e0 t\u01b0\u01a1ng th\u00edch v\u1edbi c\u00e1c h\u1ec7 th\u1ed1ng kh\u00e1c c\u1ee7a doanh nghi\u1ec7p.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1456.png\" alt=\"rabbitmq-la-gi\" class=\"wp-image-28612\" width=\"582\" height=\"374\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1456.png 696w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1456-300x193.png 300w\" sizes=\"(max-width: 582px) 100vw, 582px\" \/><\/figure><\/div>\n\n\n\n<h2 id=\"RabbitMQ_ho\u1ea1t_\u0111\u1ed9ng_ra_sao?\"><a id=\"post-28607-_jj2jhyt4njpr\"><\/a><strong>RabbitMQ ho\u1ea1t \u0111\u1ed9ng ra sao?<\/strong><\/h2>\n\n\n\n<h3 id=\"V\u00ed_d\u1ee5_v\u1ec1_c\u00e1ch_RabbitMQ_ho\u1ea1t_\u0111\u1ed9ng\"><a id=\"post-28607-_tgdj5bbzhxdr\"><\/a><strong>V\u00ed d\u1ee5 v\u1ec1 c\u00e1ch RabbitMQ ho\u1ea1t \u0111\u1ed9ng<\/strong><\/h3>\n\n\n\n<p>V\u00ed d\u1ee5 v\u1ec1 message broker \u1edf ph\u00eda \u0111\u1ea7u \u0111\u00e3 n\u00eau c\u00f3 th\u1ec3 kh\u00e1 kh\u00f3 hi\u1ec3u v\u1edbi nhi\u1ec1u b\u1ea1n, v\u00ec th\u1ebf, Tino Group s\u1ebd gi\u1edbi thi\u1ec7u \u0111\u1ebfn b\u1ea1n m\u1ed9t v\u00ed d\u1ee5 d\u1ec5 hi\u1ec3u h\u01a1n nh\u01b0 sau:<\/p>\n\n\n\n<p>B\u1ea1n l\u00ean m\u1ed9t trang web t\u1ea1o CV online mi\u1ec5n ph\u00ed, sau khi b\u1ea1n \u0111i\u1ec1n h\u1ebft th\u00f4ng tin v\u00e0 b\u1ea1n g\u1eedi y\u00eau c\u1ea7u xu\u1ea5t m\u1ed9t t\u1ec7p CV d\u1ea1ng PDF. T\u1ea5t nhi\u00ean, vi\u1ec7c t\u1ea1o CV v\u00e0 y\u00eau c\u1ea7u xu\u1ea5t file PDF ra kh\u00f4ng ph\u1ea3i ch\u1ec9 duy nh\u1ea5t b\u1ea1n y\u00eau c\u1ea7u, n\u1ebfu x\u1eed l\u00fd kh\u00f4ng kh\u00e9o, server s\u1ebd b\u1ecb qu\u00e1 t\u1ea3i v\u00e0 ngh\u1ebdn. V\u00ec th\u1ebf, c\u00e1c nh\u00e0 nh\u00e0 ph\u00e1t tri\u1ec3n s\u1ebd s\u1eed d\u1ee5ng RabbitMQ \u0111\u1ec3 l\u1ea5y request v\u00e0 t\u1ea1o h\u00e0ng ch\u1edd. C\u01a1 ch\u1ebf ho\u1ea1t \u0111\u1ed9ng l\u00fac n\u00e0y nh\u01b0 sau:<\/p>\n\n\n\n<p>Consumer l\u1ea5y message t\u1eeb h\u00e0ng ch\u1edd v\u00e0 t\u1ea1o file PDF; trong c\u00f9ng l\u00fac, m\u1ed9t producer \u0111ang g\u1eedi th\u00eam c\u00e1c message kh\u00e1c v\u00e0o h\u00e0ng ch\u1edd. Request c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c t\u1ea1o b\u1edfi ng\u00f4n ng\u1eef n\u00e0y v\u00e0 x\u1eed l\u00fd b\u1edfi ng\u00f4n ng\u1eef kh\u00e1c th\u00f4ng qua vi\u1ec7c trao \u0111\u1ed5i b\u1eb1ng message, t\u1eeb \u0111\u00f3 l\u00e0m gi\u1ea3m s\u1ef1 r\u00e0ng bu\u1ed9c gi\u1eefa 2 \u0111\u1ea7u.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1457.png\" alt=\"rabbitmq-la-gi\" class=\"wp-image-28613\" width=\"820\" height=\"390\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1457.png 1640w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1457-300x143.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1457-1024x487.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1457-768x365.png 768w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1457-1536x731.png 1536w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/figure><\/div>\n\n\n\n<p>T\u00f3m t\u1eaft l\u1ea1i, qu\u00e1 tr\u00ecnh t\u1ea1o file CV PDF online c\u1ee7a b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c RabbitMQ th\u1ef1c hi\u1ec7n nh\u01b0 sau:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>B\u1ea1n y\u00eau c\u1ea7u website t\u1ea1o m\u1ed9t file CV PDF<\/li><li>Website s\u1ebd t\u1ea1o message \u0111\u1ebfn RabbitMQ v\u1edbi c\u00e1c n\u1ed9i dung nh\u01b0 H\u1ecd t\u00ean v\u00e0 email c\u1ee7a b\u1ea1n.<\/li><li>M\u1ed9t exchange s\u1ebd \u0111\u1ed3ng \u00fd v\u00e0 x\u1eed l\u00fd message t\u1eeb producer v\u00e0 routing message \u0111\u00f3 v\u00e0o \u0111\u00fang h\u00e0ng \u0111\u1ee3i t\u1ea1o PDF.<\/li><li>M\u1ed9t worker x\u1eed l\u00fd PDF s\u1ebd nh\u1eadn task v\u00e0 t\u1ea1o PDF gi\u00fap b\u1ea1n.<\/li><\/ul>\n\n\n\n<h3 id=\"C\u00e1c_lo\u1ea1i_Exchange_trong_RabbitMQ\"><a id=\"post-28607-_wb762jkogayn\"><\/a><strong>C\u00e1c lo\u1ea1i Exchange trong RabbitMQ<\/strong><\/h3>\n\n\n\n<p>Ph\u1ea7n gi\u1ea3i th\u00edch b\u00ean d\u01b0\u1edbi s\u1ebd c\u00f3 ph\u1ea7n h\u01a1i tr\u1eebu t\u01b0\u1ee3ng, tuy nhi\u00ean, b\u1ea1n c\u00f3 th\u1ec3 xem \u1ea3nh n\u00e0y v\u00e0 hi\u1ec3u h\u01a1n v\u1ec1 3 lo\u1ea1i Exchange ch\u00ednh trong RabbitMQ.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1458.png\" alt=\"rabbitmq-la-gi\" class=\"wp-image-28614\" width=\"698\" height=\"426\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1458.png 1206w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1458-300x183.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1458-1024x625.png 1024w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1458-768x469.png 768w\" sizes=\"(max-width: 698px) 100vw, 698px\" \/><\/figure><\/div>\n\n\n\n<h4 id=\"Direct_exchange\"><a id=\"post-28607-_ugjcys9f2ztd\"><\/a><strong>Direct exchange<\/strong><\/h4>\n\n\n\n<p>V\u1edbi c\u00e1ch n\u00e0y, message s\u1ebd \u0111\u01b0\u1ee3c truy\u1ec1n tr\u1ef1c ti\u1ebfp \u0111\u1ebfn h\u00e0ng \u0111\u1ee3i d\u1ef1a tr\u00ean routing key &#8211; kh\u00f3a \u0111\u1ecbnh tuy\u1ebfn. V\u00ed d\u1ee5 d\u1ec5 hi\u1ec3u: n\u1ebfu m\u1ed9t h\u00e0ng \u0111\u1ee3i exchange c\u00f3 blinding key l\u00e0 Tao_PDF, message c\u00f3 routing key l\u00e0 Tao_PDF s\u1ebd \u0111\u01b0\u1ee3c \u0111\u1ea9y v\u00e0o h\u00e0ng \u0111\u1ee3i c\u1ee7a c\u1ee7a exchange \u0111\u00f3.<\/p>\n\n\n\n<h4 id=\"Fanout_exchange\"><a id=\"post-28607-_nok2p2wxikw\"><\/a><strong>Fanout exchange<\/strong><\/h4>\n\n\n\n<p>Fanout exchange s\u1ebd \u0111\u1ea9y message \u0111\u1ebfn to\u00e0n b\u1ed9 h\u00e0ng \u0111\u1ee3i \u0111\u01b0\u1ee3c g\u1eafng v\u1edbi exchange \u0111\u00f3. Hi\u1ec3u m\u1ed9t c\u00e1ch \u0111\u01a1n gi\u1ea3n, b\u1ea3n copy c\u1ee7a message s\u1ebd \u0111\u01b0\u1ee3c g\u1eedi t\u1edbi t\u1ea5t c\u1ea3 c\u00e1c h\u00e0ng \u0111\u1ee3i v\u00e0 b\u1ecf qua routing key.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1459.png\" alt=\"rabbitmq-la-gi\" class=\"wp-image-28615\" width=\"482\" height=\"480\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1459.png 520w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1459-300x300.png 300w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1459-150x150.png 150w\" sizes=\"(max-width: 482px) 100vw, 482px\" \/><\/figure><\/div>\n\n\n\n<h4 id=\"Topic_exchange\"><a id=\"post-28607-_x4oc7634mpyp\"><\/a><strong>Topic exchange<\/strong><\/h4>\n\n\n\n<p>Topic exchange s\u1ebd l\u00e0 m\u1ed9t wildcard hay l\u00e1 b\u00e0i \u0111\u1ec3 g\u1eafng routing key v\u1edbi m\u1ed9t routing pattern khi khai b\u00e1o trong blinding. Consumer c\u00f3 th\u1ec3 t\u1ef1 ch\u1ecdn nh\u1eefng topic ph\u00f9 h\u1ee3p v\u1edbi c\u00fa ph\u00e1p s\u1eed d\u1ee5ng * ho\u1eb7c #.<\/p>\n\n\n\n<p>V\u00ed d\u1ee5 nh\u01b0: <strong>Tao.*<\/strong> ho\u1eb7c <strong>Tao.#<\/strong> \u0111\u1ec3 \u0111\u0103ng k\u00fd to\u00e0n b\u1ed9 key b\u1eaft \u0111\u1ea7u b\u1eb1ng <strong>Tao<\/strong>.<\/p>\n\n\n\n<h4 id=\"Headers_exchange\"><a id=\"post-28607-_90bi4lttnbfh\"><\/a><strong>Headers exchange<\/strong><\/h4>\n\n\n\n<p>Header exchange kh\u00e1 gi\u1ed1ng v\u1edbi c\u00e1ch th\u1ee9c ho\u1ea1t \u0111\u1ed9ng c\u1ee7a Topic exchange. Tuy nhi\u00ean, header exchange s\u1eed d\u1ee5ng thu\u1ed9c t\u00ednh c\u1ee7a c\u00e1c message \u0111\u1ec3 routing. Message \u0111\u00f3 s\u1ebd h\u1ee3p l\u1ec7 n\u1ebfu gi\u00e1 tr\u1ecb ti\u00eau \u0111\u1ec1 \u0111\u00fang v\u1edbi gi\u00e1 tr\u1ecb r\u00e0ng bu\u1ed9c (gi\u1ed1ng nh\u01b0 v\u00ed d\u1ee5 c\u1ee7a Topic exchange).<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1460.png\" alt=\"rabbitmq-la-gi\" class=\"wp-image-28616\" width=\"442\" height=\"515\" title=\"\" srcset=\"https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1460.png 520w, https:\/\/tino.vn\/blog\/wp-content\/uploads\/2021\/07\/word-image-1460-257x300.png 257w\" sizes=\"(max-width: 442px) 100vw, 442px\" \/><\/figure><\/div>\n\n\n\n<p>Qua b\u00e0i vi\u1ebft, Tino Group hy v\u1ecdng \u0111\u00e3 gi\u00fap b\u1ea1n c\u00f3 th\u00eam nhi\u1ec1u ki\u1ebfn th\u1ee9c v\u1ec1 RabbitMQ, hi\u1ec3u RabbitMQ l\u00e0 g\u00ec c\u0169ng c\u00e1ch RabbitMQ ho\u1ea1t \u0111\u1ed9ng ra sao. Tino Group ch\u00fac b\u1ea1n s\u1ebd c\u00f3 nhi\u1ec1u th\u00e0nh c\u00f4ng tr\u00ean con \u0111\u01b0\u1eddng ph\u00e1t tri\u1ec3n s\u1ef1 nghi\u1ec7p l\u1eadp tr\u00ecnh vi\u00ean c\u1ee7a m\u00ecnh! <br>B\u00e0i vi\u1ebft c\u00f3 tham kh\u1ea3o n\u1ed9i dung t\u1eeb rabbitmq.com v\u00e0 cloudamqp.com. <\/p>\n\n\n\n<h2 id=\"Nh\u1eefng_c\u00e2u_h\u1ecfi_th\u01b0\u1eddng_g\u1eb7p_v\u1ec1_RabbitMQ\"><a id=\"post-28607-_399t6nuyov8l\"><\/a><strong>Nh\u1eefng c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 RabbitMQ<\/strong><\/h2>\n\n\n\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"Nh\u00e0_cung_c\u1ea5p_d\u1ecbch_v\u1ee5_Message_Queues_n\u00e0o_d\u1ec5_tri\u1ec3n_khai?\">Nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 Message Queues n\u00e0o d\u1ec5 tri\u1ec3n khai?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>N\u1ebfu b\u1ea1n mu\u1ed1n t\u00ecm m\u1ed9t nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 Message Queue \u0111\u01a1n gi\u1ea3n, d\u1ec5 d\u00e0ng tri\u1ec3n khai v\u00e0 l\u1eadp tr\u00ecnh, b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o th\u1eed d\u1ecbch v\u1ee5 <a href=\"https:\/\/console.aws.amazon.com\/sqs\/home\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Amazon Simple Queue Service<\/a> c\u1ee7a AWS. B\u1ea1n c\u00f3 th\u1ec3 \u0111\u0103ng k\u00fd s\u1eed d\u1ee5ng th\u1eed d\u1ecbch v\u1ee5 AWS mi\u1ec5n ph\u00ed 1 n\u0103m, trong g\u00f3i AWS Free Tier, b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c mi\u1ec5n ph\u00ed s\u1eed d\u1ee5ng \u0111\u1ebfn 1 tri\u1ec7u requests.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"T\u00e0i_li\u1ec7u_tham_kh\u1ea3o_RabbitMQ_\u1edf_\u0111\u00e2u?\">T\u00e0i li\u1ec7u tham kh\u1ea3o RabbitMQ \u1edf \u0111\u00e2u?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>\u0110\u1ec3 t\u00ecm hi\u1ec3u th\u00eam v\u1ec1 RabbitMQ, b\u1ea1n c\u00f3 th\u1ec3 truy c\u1eadp ngay v\u00e0o <a href=\"https:\/\/www.rabbitmq.com\/documentation.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">RabbitMQ Documentation<\/a> \u0111\u1ec3 xem to\u00e0n b\u1ed9 t\u00e0i li\u1ec7u h\u01b0\u1edbng d\u1eabn s\u1eed d\u1ee5ng v\u00e0 c\u00e1c m\u1eabu v\u00ed d\u1ee5 \u0111\u01a1n gi\u1ea3n v\u1ec1 RabbitMQ. T\u1eeb c\u00e1c b\u01b0\u1edbc t\u1ea3i \u0111\u01a1n gi\u1ea3n nh\u1ea5t cho \u0111\u1ebfn c\u00e0i \u0111\u1eb7t tr\u00ean t\u1eebng lo\u1ea1i h\u1ec7 \u0111i\u1ec1u h\u00e0nh v\u00e0 c\u1ea3 vi\u1ec7c k\u1ebft h\u1ee3p c\u00f9ng nh\u1eefng n\u1ec1n t\u1ea3ng Cloud nh\u01b0 th\u1ebf n\u00e0o.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"Dead_Letter_Exchange_l\u00e0_g\u00ec?\">Dead Letter Exchange l\u00e0 g\u00ec?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>Trong tr\u01b0\u1eddng h\u1ee3p RabbitMQ kh\u00f4ng t\u00ecm th\u1ea5y m\u1ed9t h\u00e0ng \u0111\u1ee3i ph\u00f9 h\u1ee3p cho message, message s\u1ebd t\u1ef1 \u0111\u1ed9ng b\u1ecb h\u1ee7y v\u00e0 t\u1ea1o Snapshots cho message \u0111\u00f3. Ti\u1ec7n \u00edch n\u00e0y \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 Dead Letter Exchange.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section\t\thelp class=\"sc_fs_faq sc_card    \"\n\t\t\t\t>\n\t\t\t\t<h2 id=\"T\u1ea3i_RabbitMQ_phi\u00ean_b\u1ea3n_m\u1edbi_nh\u1ea5t_\u1edf_\u0111\u00e2u?\">T\u1ea3i RabbitMQ phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t \u1edf \u0111\u00e2u?<\/h2>\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"sc_fs_faq__content\">\n\t\t\t\t\n\n<p>\u0110\u1ec3 t\u1ea3i phi\u00ean b\u1ea3n RabbitMQ m\u1edbi nh\u1ea5t, b\u1ea1n h\u00e3y truy c\u1eadp v\u00e0o <a href=\"https:\/\/www.rabbitmq.com\/download.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Downloading and Installing RabbitMQ<\/a>. T\u1ea1i \u0111\u00e2y, RabbitMQ s\u1ebd th\u01b0\u1eddng xuy\u00ean c\u1eadp nh\u1eadt c\u00e1c th\u00f4ng tin, n\u1ed9i dung v\u00e0 c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt m\u1ed9t c\u00e1ch chi ti\u1ebft gi\u00fap b\u1ea1n.<\/p>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/section>\n\t\t\n<script type=\"application\/ld+json\">\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"FAQPage\",\n\t\t\"mainEntity\": [\n\t\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"Nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 Message Queues n\u00e0o d\u1ec5 tri\u1ec3n khai?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>N\u1ebfu b\u1ea1n mu\u1ed1n t\u00ecm m\u1ed9t nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 Message Queue \u0111\u01a1n gi\u1ea3n, d\u1ec5 d\u00e0ng tri\u1ec3n khai v\u00e0 l\u1eadp tr\u00ecnh, b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o th\u1eed d\u1ecbch v\u1ee5 <a>Amazon Simple Queue Service<\/a> c\u1ee7a AWS. B\u1ea1n c\u00f3 th\u1ec3 \u0111\u0103ng k\u00fd s\u1eed d\u1ee5ng th\u1eed d\u1ecbch v\u1ee5 AWS mi\u1ec5n ph\u00ed 1 n\u0103m, trong g\u00f3i AWS Free Tier, b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c mi\u1ec5n ph\u00ed s\u1eed d\u1ee5ng \u0111\u1ebfn 1 tri\u1ec7u requests.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"T\u00e0i li\u1ec7u tham kh\u1ea3o RabbitMQ \u1edf \u0111\u00e2u?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>\u0110\u1ec3 t\u00ecm hi\u1ec3u th\u00eam v\u1ec1 RabbitMQ, b\u1ea1n c\u00f3 th\u1ec3 truy c\u1eadp ngay v\u00e0o <a>RabbitMQ Documentation<\/a> \u0111\u1ec3 xem to\u00e0n b\u1ed9 t\u00e0i li\u1ec7u h\u01b0\u1edbng d\u1eabn s\u1eed d\u1ee5ng v\u00e0 c\u00e1c m\u1eabu v\u00ed d\u1ee5 \u0111\u01a1n gi\u1ea3n v\u1ec1 RabbitMQ. T\u1eeb c\u00e1c b\u01b0\u1edbc t\u1ea3i \u0111\u01a1n gi\u1ea3n nh\u1ea5t cho \u0111\u1ebfn c\u00e0i \u0111\u1eb7t tr\u00ean t\u1eebng lo\u1ea1i h\u1ec7 \u0111i\u1ec1u h\u00e0nh v\u00e0 c\u1ea3 vi\u1ec7c k\u1ebft h\u1ee3p c\u00f9ng nh\u1eefng n\u1ec1n t\u1ea3ng Cloud nh\u01b0 th\u1ebf n\u00e0o.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"Dead Letter Exchange l\u00e0 g\u00ec?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>Trong tr\u01b0\u1eddng h\u1ee3p RabbitMQ kh\u00f4ng t\u00ecm th\u1ea5y m\u1ed9t h\u00e0ng \u0111\u1ee3i ph\u00f9 h\u1ee3p cho message, message s\u1ebd t\u1ef1 \u0111\u1ed9ng b\u1ecb h\u1ee7y v\u00e0 t\u1ea1o Snapshots cho message \u0111\u00f3. Ti\u1ec7n \u00edch n\u00e0y \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 Dead Letter Exchange.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t,\t\t\t\t{\n\t\t\t\t\"@type\": \"Question\",\n\t\t\t\t\"name\": \"T\u1ea3i RabbitMQ phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t \u1edf \u0111\u00e2u?\",\n\t\t\t\t\"acceptedAnswer\": {\n\t\t\t\t\t\"@type\": \"Answer\",\n\t\t\t\t\t\"text\": \"<p>\u0110\u1ec3 t\u1ea3i phi\u00ean b\u1ea3n RabbitMQ m\u1edbi nh\u1ea5t, b\u1ea1n h\u00e3y truy c\u1eadp v\u00e0o <a>Downloading and Installing RabbitMQ<\/a>. T\u1ea1i \u0111\u00e2y, RabbitMQ s\u1ebd th\u01b0\u1eddng xuy\u00ean c\u1eadp nh\u1eadt c\u00e1c th\u00f4ng tin, n\u1ed9i dung v\u00e0 c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt m\u1ed9t c\u00e1ch chi ti\u1ebft gi\u00fap b\u1ea1n.<\/p>\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t]\n\t}\n<\/script>\n\n\n","protected":false},"excerpt":{"rendered":"<p>L\u00e0m sao \u0111\u1ec3 c\u00e1c \u1ee9ng d\u1ee5ng kh\u00e1c nhau c\u00f3 th\u1ec3 giao ti\u1ebfp \u0111\u01b0\u1ee3c v\u1edbi nhau? Message broker l\u00e0 g\u00ec? RabbitMQ l\u00e0 g\u00ec? V\u00ec sao n\u00ean s\u1eed d\u1ee5ng RabbitMQ? Nh\u1eefng th\u1eafc m\u1eafc n\u00e0y c\u1ee7a b\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c Tino Group gi\u1ea3i \u0111\u00e1p ngay trong b\u00e0i vi\u1ebft nh\u00e9! RabbitMQ l\u00e0 g\u00ec? RabbitMQ l\u00e0 m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh ph\u1ea7n m\u1ec1m [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":28608,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5404],"tags":[6242],"class_list":["post-28607","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-webmasters","tag-kien-thuc-website"],"_links":{"self":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/comments?post=28607"}],"version-history":[{"count":0,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/posts\/28607\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media\/28608"}],"wp:attachment":[{"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/media?parent=28607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/categories?post=28607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tino.vn\/blog\/wp-json\/wp\/v2\/tags?post=28607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}