{"id":69621,"date":"2020-02-21T02:56:53","date_gmt":"2020-02-20T23:56:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/rabbitmq-chast-2-razbiraemsya-s-exchanges"},"modified":"2020-03-03T16:14:48","modified_gmt":"2020-03-03T13:14:48","slug":"rabbitmq-chast-2-razbiraemsya-s-exchanges","status":"publish","type":"post","link":"https:\/\/prohoster.info\/az\/blog\/administrirovanie\/rabbitmq-chast-2-razbiraemsya-s-exchanges","title":{"rendered":"RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><code>Exchange<\/code> \u2014 m\u00fcbadil\u0259 m\u0259rk\u0259zi v\u0259 ya d\u0259yi\u015fdirm\u0259 n\u00f6qt\u0259si. Buraya mesajlar g\u00f6nd\u0259rilir. <code>Exchange<\/code> <strong>mesaj\u0131<\/strong> bir v\u0259 ya bir ne\u00e7\u0259 s\u0131ra g\u00f6nd\u0259rir. O <strong>mesajlar\u0131 s\u0131ralara y\u00f6nl\u0259ndirir<\/strong> yarad\u0131lan \u0259laq\u0259l\u0259r \u0259sas\u0131nda (<code>bindings<\/code>) onunla s\u0131ra aras\u0131nda. <\/p>\n<p><\/p>\n<p><code>Exchange<\/code> deyildir <noindex><a rel=\"nofollow\" href=\"http:\/\/erlang.org\/doc\/reference_manual\/processes.html\">Erlang prosesi<\/a><\/noindex>. Miqyasland\u0131rma bax\u0131m\u0131ndan <code>exchange<\/code> bir s\u0259tirdir (kod modulu il\u0259 ba\u011fl\u0131 link, burada y\u00f6nl\u0259ndirm\u0259 mant\u0131\u011f\u0131 yerl\u0259\u015fir) daxili veril\u0259nl\u0259r bazas\u0131nda <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Mnesia\">mnesia<\/a><\/noindex>. 1 min m\u00fcbadil\u0259 m\u0259rk\u0259zi yaln\u0131z 1MB yadda\u015f istifad\u0259 ed\u0259c\u0259k. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"oglavlenie\">M\u00fcnd\u0259ricat<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/488654\/\">RabbitMQ. Hiss\u0259 1. Giri\u015f. Erlang, AMQP v\u0259 RPC<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/489086\/\">RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq<\/a><\/noindex><\/li>\n<li>RabbitMQ. Hiss\u0259 3. Queues v\u0259 Bindings il\u0259 tan\u0131\u015f oluruq<\/li>\n<li>RabbitMQ. Hiss\u0259 4. Mesajlar v\u0259 \u00e7\u0259r\u00e7iv\u0259l\u0259r n\u0259dir<\/li>\n<li>RabbitMQ. Hiss\u0259 5. Mesajlar\u0131n n\u0259\u015fr v\u0259 istehlak performans\u0131<\/li>\n<li>RabbitMQ. Hiss\u0259 6. Federation v\u0259 Shovel modullar\u0131n\u0131n icmal\u0131<\/li>\n<li>RabbitMQ. Hiss\u0259 7. Ba\u011flant\u0131 v\u0259 Kanal haqq\u0131nda \u0259trafl\u0131<\/li>\n<li>RabbitMQ. Hiss\u0259 8. RabbitMQ .NET-d\u0259<\/li>\n<li>RabbitMQ. Hiss\u0259 9. Monitorinq<\/li>\n<\/ul>\n<p><\/p>\n<h4 id=\"direct-exchange\"><em>Direct Exchange<\/em><\/h4>\n<p><\/p>\n<p><code>Direct exchange<\/code> \u2014 m\u00fc\u0259yy\u0259n s\u0131ralara <strong>mesaj\u0131n \u00e7atd\u0131r\u0131lmas\u0131 laz\u0131m olduqda istifad\u0259 olunur.<\/strong>Mesaj m\u00fcbadil\u0259 m\u0259rk\u0259zin\u0259 belirli bir <strong>y\u00f6nl\u0259ndirm\u0259 a\u00e7ar\u0131 il\u0259 d\u0259rc olunur<\/strong> v\u0259 bu m\u00fcbadil\u0259 m\u0259rk\u0259zi il\u0259 eyni y\u00f6nl\u0259ndirm\u0259 a\u00e7ar\u0131 il\u0259 ba\u011fl\u0131 olan b\u00fct\u00fcn s\u0131ralara d\u00fc\u015f\u00fcr. <strong>Y\u00f6nl\u0259ndirm\u0259 a\u00e7ar\u0131 \u2014 bir s\u0259tirdir<\/strong>. Uy\u011funlu\u011fu tapmaq \u00fc\u00e7\u00fcn <strong>s\u0259tirl\u0259rin b\u0259rab\u0259rliyini yoxlama<\/strong>.<\/p>\n<p><\/p>\n<p>Mesaj ax\u0131n\u0131n\u0131n qrafik t\u0259qdimat\u0131:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq\" src=\"\/wp-content\/uploads\/2020\/02\/8ce3ab37542f2a7f8e7ac02a737c5f88.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u0130 <code>rabbitmq<\/code> default m\u00fcbadil\u0259 m\u0259rk\u0259zi anlay\u0131\u015f\u0131 var <strong>. Bu<\/strong>direct exchange <code>ad olmadan. Default m\u00fcbadil\u0259 m\u0259rk\u0259zi istifad\u0259 edildikd\u0259, mesaj y\u00f6nl\u0259ndirm\u0259 a\u00e7ar\u0131n\u0131n<\/code> ad\u0131na b\u0259rab\u0259r olan s\u0131raya y\u00f6nl\u0259ndiril\u0259c\u0259k. <strong>mesaj\u0131n y\u00f6nl\u0259ndirm\u0259 a\u00e7ar\u0131n\u0131n<\/strong>. <\/p>\n<p><\/p>\n<h4 id=\"topic-exchange\"><em>Topic Exchange<\/em><\/h4>\n<p><\/p>\n<p><code>Topic exchange<\/code> \u2014 b\u0259nz\u0259rdir <code>ad olmadan. Default m\u00fcbadil\u0259 m\u0259rk\u0259zi istifad\u0259 edildikd\u0259, mesaj y\u00f6nl\u0259ndirm\u0259 a\u00e7ar\u0131n\u0131n<\/code> se\u00e7imli y\u00f6nl\u0259ndirm\u0259y\u0259 imkan verir, y\u00f6nl\u0259ndirm\u0259 a\u00e7ar\u0131n\u0131 m\u00fcqayis\u0259 etm\u0259kl\u0259. Lakin, bu halda, a\u00e7ar \u015fablonla verilir. <strong>\u015fablonla<\/strong>. \u015eablon yaradark\u0259n <code>0<\/code> bir v\u0259 ya daha \u00e7ox s\u00f6z (h\u0259rfl\u0259r <code>AZ<\/code> v\u0259 <code>az<\/code> v\u0259 r\u0259q\u0259ml\u0259r <code>0-9<\/code>), n\u00f6qt\u0259l\u0259r il\u0259 ayr\u0131l\u0131r, el\u0259c\u0259 d\u0259 simvollar <code>*<\/code> v\u0259 <code>#<\/code>. <\/p>\n<p><\/p>\n<ul>\n<li><code>*<\/code> \u2014 tam olaraq <code>1<\/code> s\u00f6z <\/li>\n<li><code>#<\/code> \u2014 bir v\u0259 ya daha \u00e7ox s\u00f6zl\u0259 <code>0<\/code> d\u0259yi\u015fdiril\u0259 bil\u0259r <\/li>\n<\/ul>\n<p><\/p>\n<p>Mesaj ax\u0131n\u0131n\u0131n qrafik t\u0259qdimat\u0131:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq\" src=\"\/wp-content\/uploads\/2020\/02\/a0ce48b291a3003eabbe61b3dfa5a4e1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>S\u00fcr\u00fcm <code>RabbitMQ 2.4.0<\/code> y\u00f6nl\u0259ndirm\u0259 alqoritmi <code>topic exchange<\/code> art\u0131q <code>145<\/code> iki d\u0259f\u0259 daha s\u00fcr\u0259tli i\u015fl\u0259yir. Onlar bunu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.rabbitmq.com\/blog\/2011\/03\/28\/very-fast-and-scalable-topic-routing-part-2\/\">trie implementation<\/a><\/noindex>, \u015fablonlar\u0131n a\u011fac strukturu kimi t\u0259qdim olunmas\u0131n\u0131 t\u0259min etm\u0259kl\u0259 h\u0259yata ke\u00e7irdil\u0259r. M\u0259s\u0259l\u0259n, \u015fablonlar <code>a.b.c<\/code>, <code>a.*.b.c<\/code>, <code>a.#.c<\/code> v\u0259 <code>b.b.c<\/code> a\u015fa\u011f\u0131dak\u0131 struktura t\u0259qdim olunacaq:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq\" src=\"\/wp-content\/uploads\/2020\/02\/56ef5809fec9eb6c1b50a362b89dd05a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u015eablona uy\u011funlu\u011fu a\u015fkar etm\u0259 prosesi k\u00f6kd\u0259n ba\u015flayaraq yuxar\u0131dan a\u015fa\u011f\u0131ya do\u011fru apar\u0131l\u0131r.<\/p>\n<p><\/p>\n<p>X\u00fcsusiyy\u0259tl\u0259r:<\/p>\n<p><\/p>\n<ul>\n<li>bu m\u00fcbadil\u0259 m\u0259rk\u0259zinin t\u0259tbiqi <strong>proqram\u0131n g\u0259l\u0259c\u0259k inki\u015faf\u0131 \u00fc\u00e7\u00fcn yax\u015f\u0131 bir se\u00e7im ola bil\u0259r<\/strong>, \u00e7\u00fcnki \u015fablonlar h\u0259r zaman konfiqurasiya edil\u0259 bil\u0259r ki, mesaj analoji olaraq <code>ad olmadan. Default m\u00fcbadil\u0259 m\u0259rk\u0259zi istifad\u0259 edildikd\u0259, mesaj y\u00f6nl\u0259ndirm\u0259 a\u00e7ar\u0131n\u0131n<\/code> v\u0259 <code>fanout exchange<\/code><\/li>\n<li>\u015fablonlardan istifad\u0259 ed\u0259nl\u0259rd\u0259n <code>*<\/code> <strong>xeyli daha s\u00fcr\u0259tli<\/strong>, n\u0259inki \u015fablonlardan istifad\u0259 ed\u0259nl\u0259r <code>#<\/code>. <\/li>\n<li><code>topic exchange<\/code> daha yava\u015fd\u0131r <code>ad olmadan. Default m\u00fcbadil\u0259 m\u0259rk\u0259zi istifad\u0259 edildikd\u0259, mesaj y\u00f6nl\u0259ndirm\u0259 a\u00e7ar\u0131n\u0131n<\/code><\/li>\n<\/ul>\n<p><\/p>\n<h4 id=\"fanout-exchange\"><em>Fanout Exchange<\/em><\/h4>\n<p><\/p>\n<p><code>Fanout exchange<\/code> \u2013 <strong>b\u00fct\u00fcn mesajlar b\u00fct\u00fcn s\u0131ralara \u00e7atd\u0131r\u0131l\u0131r<\/strong> mesajda y\u00f6nl\u0259ndirm\u0259 a\u00e7ar\u0131 m\u00fc\u0259yy\u0259n olsa bel\u0259.<\/p>\n<p><\/p>\n<p>X\u00fcsusiyy\u0259tl\u0259r:<\/p>\n<p><\/p>\n<ul>\n<li><code>RabbitMQ<\/code> <strong>y\u00f6nl\u0259ndirm\u0259 a\u00e7arlar\u0131 v\u0259 \u015fablonlarla i\u015fl\u0259mir.<\/strong> performansa \u00fcz\u0259rind\u0259 m\u00fcsb\u0259t t\u0259sir ed\u0259n amill\u0259r. Bu, \u0259n s\u00fcr\u0259tli <code>exchange<\/code>;<\/li>\n<li>b\u00fct\u00fcn m\u00fc\u015ft\u0259ril\u0259r b\u00fct\u00fcn mesajlar\u0131 i\u015fl\u0259m\u0259k imkan\u0131na sahib olmal\u0131d\u0131r;<\/li>\n<\/ul>\n<p><\/p>\n<p>Mesaj ax\u0131n\u0131n\u0131n qrafik t\u0259qdimat\u0131:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq\" src=\"\/wp-content\/uploads\/2020\/02\/575d86093f151016aef8058fc7d92907.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"headers-exchange\"><em>Ba\u015fl\u0131qlar M\u00fcbadil\u0259si<\/em><\/h4>\n<p><\/p>\n<p><code>Ba\u015fl\u0131qlar\u0131n m\u00fcbadil\u0259si<\/code> \u2014 mesajlar\u0131 \u0259laq\u0259li n\u00f6vb\u0259l\u0259r\u0259 y\u00f6nl\u0259ndirir, a\u00e7ar-d\u0259y\u0259r c\u00fct\u00fc x\u00fcsusiyy\u0259tin\u0259 \u0259sas\u0259n m\u00fcqayis\u0259 edil\u0259r\u0259k <code>ba\u015fl\u0131qlar<\/code> ba\u011fl\u0131l\u0131\u011f\u0131 v\u0259 mesaj\u0131n eyni x\u00fcsusiyy\u0259tini. <code>ba\u015fl\u0131qlar<\/code> t\u0259\u015fkil edir <code>Dictionary&lt;key, value&gt;<\/code>. <\/p>\n<p><\/p>\n<p>\u018fg\u0259r l\u00fc\u011f\u0259t\u0259 x\u00fcsusi bir a\u00e7ar \u0259lav\u0259 ets\u0259niz <code>x-match<\/code> d\u0259y\u0259ri il\u0259 <code>any<\/code>, mesaj a\u00e7ar-d\u0259y\u0259r c\u00fct\u00fc \u00fczr\u0259 qism\u0259n uy\u011funsuzluq olduqda y\u00f6nl\u0259ndirilir. Bu davran\u0131\u015f, operatora b\u0259nz\u0259yir <code>or<\/code>. <\/p>\n<p><\/p>\n<pre><code class=\"cs\">var bindingArguments = new Dictinary();\nbindingArguments.add(\"x-match\", \"any\");<\/code><\/pre>\n<p><\/p>\n<p>T\u0259qdimata g\u00f6r\u0259 a\u00e7ar <code>x-match<\/code> d\u0259y\u0259ri ehtiva edir <code>ham\u0131s\u0131<\/code>. Bu, mesaj\u0131n a\u00e7ar-d\u0259y\u0259r c\u00fct\u00fc \u00fczr\u0259 tam uy\u011funsuzlu\u011fu olduqda y\u00f6nl\u0259ndirilir. Bu davran\u0131\u015f, operatora b\u0259nz\u0259yir <code>and<\/code>.<\/p>\n<p><\/p>\n<p>Mesaj ax\u0131n\u0131n\u0131n qrafik t\u0259qdimat\u0131:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq\" src=\"\/wp-content\/uploads\/2020\/02\/e9a02a0df88cb2c0538b97cec9002bf4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>X\u00fcsusiyy\u0259tl\u0259r:<\/p>\n<p><\/p>\n<ul>\n<li>\u0259lav\u0259 \u00e7eviklik<\/li>\n<li>h\u0259m\u00e7inin hesablaman\u0131n \u0259lav\u0259 x\u0259rcl\u0259rini yarad\u0131r. B\u00fct\u00fcn c\u00fctl\u0259r (a\u00e7ar, d\u0259y\u0259r) atributu <code>ba\u015fl\u0131qlar<\/code> m\u0259qs\u0259dli y\u00f6nl\u0259ndirm\u0259 d\u0259y\u0259rl\u0259rini hesablama\u011fa ba\u015flamazdan \u0259vv\u0259l a\u00e7ar adlar\u0131na g\u00f6r\u0259 s\u0131ralanmal\u0131d\u0131r. <strong>Dig\u0259r m\u00fcbadil\u0259 n\u00f6vl\u0259rind\u0259n daha yava\u015fd\u0131r<\/strong>.<\/li>\n<\/ul>\n<p><\/p>\n<h4 id=\"consistent-hashing-exchange\"><em>Konsistent-Ha\u015f M\u00fcbadil\u0259si<\/em><\/h4>\n<p><\/p>\n<p>Bu m\u00fcbadil\u0259 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/rabbitmq\/rabbitmq-consistent-hash-exchange\">plagin<\/a><\/noindex> v\u0259 <strong>daxil deyil<\/strong> daxilind\u0259dir. <code>RabbitMQ<\/code>.<\/p>\n<p><\/p>\n<p><code>Konsistent-ha\u015f m\u00fcbadil\u0259si<\/code> (konsistent hash m\u00fcbadil\u0259si) \u2013 bir ne\u00e7\u0259 n\u00f6vb\u0259nin olmas\u0131 hal\u0131nda istifad\u0259 olunur ki, bunlar mesaj\u0131n m\u00fcmk\u00fcn al\u0131c\u0131lar\u0131d\u0131r v\u0259 y\u00fck\u00fc onlar\u0131n aras\u0131nda tarazla\u015fd\u0131rmaq laz\u0131md\u0131r. Mesaj\u0131n n\u00f6vb\u0259y\u0259 ba\u011fl\u0131l\u0131\u011f\u0131, \u00e7\u0259kisi \u0259sas\u0131nda h\u0259yata ke\u00e7irilir (\u015f\u0259rti string d\u0259y\u0259ri <code>0 - n<\/code>). <\/p>\n<p><\/p>\n<p>N\u00f6vb\u0259l\u0259rin ekvivalent \u00e7\u0259kisi \u2013 h\u0259r bir n\u00f6vb\u0259y\u0259 t\u0259xmin\u0259n eyni sayda <strong>mesaj\u0131n (h\u0259r bir mesaj yaln\u0131z bir n\u00f6vb\u0259y\u0259 yerl\u0259\u015fdiril\u0259c\u0259k) \u00e7ataca\u011f\u0131n\u0131 g\u00f6st\u0259rir.<\/strong> Mesajlar\u0131n b\u0259rab\u0259r b\u00f6l\u00fc\u015fd\u00fcr\u00fclm\u0259si il\u0259 ba\u011fl\u0131 tam z\u0259man\u0259t yoxdur <strong>Hash<\/strong>. <\/p>\n<p><\/p>\n<p>Mesaj ax\u0131n\u0131n\u0131n qrafik t\u0259qdimat\u0131:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq\" src=\"\/wp-content\/uploads\/2020\/02\/dd22749cad463fe86619a98276554e10.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><code>mar\u015frut a\u00e7ar\u0131 ya da mesaj\u0131n<\/code> x\u00fcsusiyy\u0259tin\u0259 \u0259saslanaraq hesablan\u0131r. \u018fg\u0259r b\u00fct\u00fcn yay\u0131mlanan mesajlar f\u0259rqli mar\u015frut a\u00e7arlar\u0131na sahib idis\u0259 v\u0259 <code>ba\u015fl\u0131qlar<\/code> , o zaman b\u00f6l\u00fc\u015fd\u00fcr\u00fclm\u0259 \u00e7\u0259kisi \u00fczr\u0259 h\u0259yata ke\u00e7iril\u0259c\u0259k. \u018fks halda mar\u015frut a\u00e7ar\u0131 ya da <code>ba\u015fl\u0131qlar<\/code>\u0130stehlak\u00e7\u0131n\u0131n ke\u00e7id geni\u015fl\u0259ndirm\u0259si laz\u0131m olduqda k\u00f6m\u0259k etm\u0259lidir, bu, bir n\u00f6vb\u0259ni payla\u015faraq bir ne\u00e7\u0259 istehsal\u00e7\u0131dan daha y\u00fcks\u0259kdir. <code>ba\u015fl\u0131qlar<\/code>.<\/p>\n<p><\/p>\n<p><strong>M\u00fcbadil\u0259l\u0259rin birl\u0259\u015fm\u0259si (E2E)<\/strong><\/p>\n<p><\/p>\n<h4 id=\"kombinirovanie-obmennikov-e2e\"><em>B\u00fct\u00fcn m\u00fcbadil\u0259 davran\u0131\u015flar\u0131, m\u00fcbadil\u0259nin<\/em><\/h4>\n<p><\/p>\n<p>M\u00fcbadil\u0259d\u0259n M\u00fcbadil\u0259y\u0259 <strong>(m\u00fcbadil\u0259l\u0259rin birl\u0259\u015fdirilm\u0259si spesifikasiyaya daxil deyil<\/strong> AMQP <code>. Bu, protokolun geni\u015fl\u0259ndirilm\u0259sidir<\/code>E2E <code>RabbitMQ<\/code>).<\/p>\n<p><\/p>\n<p>Mesaj ax\u0131n\u0131n\u0131n qrafik t\u0259qdimat\u0131:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq\" src=\"\/wp-content\/uploads\/2020\/02\/41ea01a0f43f2dd195fa4f34f7fc176c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>vasit\u0259sil\u0259 <code>biz do\u011fru miqyasl\u0131 konfiqurasiyaya g\u00f6r\u0259 bilirik ki, bu, h\u0259m cari, h\u0259m d\u0259 artan t\u0259l\u0259bl\u0259r\u0259 cavab verir.<\/code> M\u00fcbadil\u0259 yaratma<\/p>\n<p><\/p>\n<h4 id=\"sozdanie-exchange\"><em>M\u00fcbadil\u0259nin yaranmas\u0131, sinxron<\/em><\/h4>\n<p><\/p>\n<p>RPC <code>server\u0259 sor\u011fu edilm\u0259si il\u0259 h\u0259yata ke\u00e7irilir. Sor\u011fu<\/code> Exchange.Declare <code>metodu il\u0259 edilir, parametrl\u0259rl\u0259 \u00e7a\u011f\u0131r\u0131l\u0131r:<\/code>m\u00fcbadil\u0259 ad\u0131<\/p>\n<p><\/p>\n<ul>\n<li>m\u00fcbadil\u0259 n\u00f6v\u00fc<\/li>\n<li>dig\u0259r parametrl\u0259r<\/li>\n<li>M\u00fcbadil\u0259nin yarad\u0131lmas\u0131<\/li>\n<\/ul>\n<p><\/p>\n<p>RabbitMQ.Client <code>exchange<\/code> Wine 5.4 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.rabbitmq.com\/dotnet.html\">\u2013 yaratmaq ist\u0259diyimiz m\u00fcbadil\u0259nin ad\u0131d\u0131r. Adun unikal olmas\u0131 t\u0259l\u0259b olunur<\/a><\/noindex>:<\/p>\n<p><\/p>\n<pre><code class=\"cs\">\/\/...\nchannel.ExchangeDeclare(\n    exchange: &quot;my_exchange&quot;,\n    type: &quot;direct&quot;,\n    durable: &quot;false&quot;,\n    autoDelete: &quot;false&quot;,\n    arguments: null\n);\n\/\/...<\/code><\/pre>\n<p><\/p>\n<ul>\n<li><code>exchange<\/code> tip<\/li>\n<li><code>type<\/code> \u2014 m\u00fcbadil\u0259 n\u00f6v\u00fc<\/li>\n<li><code>dayan\u0131ql\u0131<\/code> \u2014 \u0259g\u0259r qura\u015fd\u0131r\u0131lsa <code>true<\/code>, o <code>exchange<\/code> daimi olacaq. O diskd\u0259 saxlan\u0131lacaq v\u0259 server\/brokerin yenid\u0259n ba\u015flad\u0131lmas\u0131n\u0131 ke\u00e7ir\u0259 bil\u0259c\u0259k. \u018fg\u0259r d\u0259y\u0259r <code>false<\/code>, o <code>exchange<\/code> m\u00fcv\u0259qq\u0259tidirs\u0259 v\u0259 server\/broker yenid\u0259n ba\u015flad\u0131ld\u0131qda silin\u0259c\u0259k<\/li>\n<li><code>autoDelete<\/code> \u2014 avtomatik silm\u0259. <code>Exchange<\/code> silin\u0259c\u0259k, b\u00fct\u00fcn ba\u011fl\u0131 n\u00f6vb\u0259l\u0259r silindikd\u0259<\/li>\n<li><code>arguments<\/code> \u2014 qeyri-m\u0259cburi arqumentl\u0259r. Tez-tez arqumentl\u0259r vasit\u0259sil\u0259 daxil edilir <code>alternatif m\u00fcbadil\u0259<\/code> (<strong>alternatif m\u00fcbadil\u0259\u00e7i<\/strong>). \u018fg\u0259r mesaj ilkin mar\u015frutdan ke\u00e7\u0259 bilmirs\u0259, alternativ m\u00fcbadil\u0259\u00e7iy\u0259 g\u00f6nd\u0259ril\u0259 bil\u0259r ki, ba\u015fqa bir yol il\u0259 y\u00f6nl\u0259ndiril\u0259c\u0259k.<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq\" src=\"\/wp-content\/uploads\/2020\/02\/6a352e92f94dadf58ba24de453806133.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00fcbadil\u0259\u00e7i yarad\u0131lmal\u0131d\u0131r mesajlar\u0131n d\u0259rc edilm\u0259sind\u0259n \u0259vv\u0259l. \u018fg\u0259r siz bir m\u00f6vcud olmayan m\u00fcbadil\u0259\u00e7id\u0259 mesaj d\u0259rc ets\u0259niz \u2014 <code>exchange<\/code> <strong>sakitc\u0259 silin\u0259c\u0259k.<\/strong>, o zaman server m\u00fc\u015ft\u0259riy\u0259 sinxron <code>server\u0259 sor\u011fu edilm\u0259si il\u0259 h\u0259yata ke\u00e7irilir. Sor\u011fu<\/code> cavab g\u00f6nd\u0259r\u0259c\u0259k <code>Exchange.DeclareOk<\/code>. \u018fg\u0259r yarad\u0131lmas\u0131 <strong>m\u00fcmk\u00fcn deyils\u0259<\/strong> (t\u0259l\u0259b\u0259 g\u00f6r\u0259 imtina ba\u015f verdi <code>metodu il\u0259 edilir, parametrl\u0259rl\u0259 \u00e7a\u011f\u0131r\u0131l\u0131r:<\/code>), o zaman <strong>kanal server t\u0259r\u0259find\u0259n asinxron \u0259mr il\u0259 ba\u011flanacaq<\/strong> Channel.Close <code>v\u0259 m\u00fc\u015ft\u0259ri bir istisna alacaq<\/code> OperationInterruptedException <noindex><a rel=\"nofollow\" href=\"https:\/\/www.rabbitmq.com\/releases\/rabbitmq-dotnet-client\/v3.6.10\/rabbitmq-dotnet-client-3.6.10-client-htmldoc\/html\/type-RabbitMQ.Client.Exceptions.OperationInterruptedException.html\">, bu kod v\u0259 onun t\u0259sviri olacaq.<\/a><\/noindex>, bu hata kodu v\u0259 onun t\u0259svirini ehtiva ed\u0259c\u0259k. <\/p>\n<p><\/p>\n<p>M\u00fcbadil\u0259\u00e7i, mesajlar\u0131n d\u0259rc edilm\u0259sind\u0259n \u0259vv\u0259l yarad\u0131lmal\u0131d\u0131r. \u018fg\u0259r siz qeyri-m\u00f6vcud m\u00fcbadil\u0259\u00e7id\u0259 mesaj d\u0259rc ets\u0259niz \u2014 <code>RabbitMQ<\/code> sakitc\u0259 silin\u0259c\u0259k.<\/p>\n<p><\/p>\n<h4 id=\"sozdanie-exchange-cherez-graficheskiy-interfeys\"><em>Qrafik interfeys vasit\u0259sil\u0259 m\u00fcbadil\u0259 yarad\u0131lmas\u0131<\/em><\/h4>\n<p><\/p>\n<p>\u0130dar\u0259etm\u0259 panelin\u0259 daxil olun <code>RabbitMQ<\/code> istifad\u0259\u00e7i alt\u0131nda <code>guest<\/code> (istifad\u0259\u00e7i ad\u0131: <code>guest<\/code> v\u0259 \u015fifr\u0259: <code>guest<\/code>). Qeyd edin ki, istifad\u0259\u00e7i <code>guest<\/code> yaln\u0131z yerli hostdan qo\u015fula bil\u0259r. \u0130ndi is\u0259 <code>Exchanges<\/code> sekmesine ke\u00e7\u0259k v\u0259 klikl\u0259y\u0259k <code>Yeni m\u00fcbadil\u0259 \u0259lav\u0259 edin<\/code>. X\u00fcsusiyy\u0259tl\u0259ri doldurun:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f oluruq\" src=\"\/wp-content\/uploads\/2020\/02\/c4fd31b8cdb8182690ec8c01ccd2a460.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>X\u00fcsusiyy\u0259tl\u0259rin \u0259ks\u0259riyy\u0259ti yuxar\u0131da izah edilmi\u015fdir. Burada qeyd etm\u0259liyik ki, \u0259g\u0259r <code>Daxili<\/code>, o zaman m\u00fcbadil\u0259 yaln\u0131z \u00fc\u00e7\u00fcn istifad\u0259 oluna bil\u0259r <code>biz do\u011fru miqyasl\u0131 konfiqurasiyaya g\u00f6r\u0259 bilirik ki, bu, h\u0259m cari, h\u0259m d\u0259 artan t\u0259l\u0259bl\u0259r\u0259 cavab verir.<\/code>. <code>\u0130stehsal\u00e7\u0131<\/code> bel\u0259 m\u00fcbadil\u0259y\u0259 mesaj g\u00f6nd\u0259r\u0259 bilm\u0259z.<\/p>\n<p><\/p>\n<h3 id=\"zaklyuchenie\">N\u0259tic\u0259<\/h3>\n<p><\/p>\n<p>Sistemi inki\u015faf etdir\u0259rk\u0259n, istiqam\u0259tl\u0259rin topologiyas\u0131n\u0131 t\u0259svir etm\u0259k rahatd\u0131r <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F\">mar\u015frutla\u015fd\u0131rma<\/a><\/noindex> qrafik vasit\u0259sil\u0259. Amma qrafi qurma\u011fa ba\u015flamazdan \u0259vv\u0259l, y\u00fcks\u0259k trafikli yollar\u0131 ay\u0131rmaq laz\u0131md\u0131r, \u00e7\u00fcnki m\u0259hz onlara <strong>daha y\u00fcks\u0259k \u00f6t\u00fcrm\u0259 qabiliyy\u0259ti<\/strong> (performans) t\u0259l\u0259b olunur. Sonra trafik t\u0259snif edil\u0259 bil\u0259r. V\u0259 yaln\u0131z sonra qurma\u011fa ba\u015flamaq olar.<\/p>\n<p><\/p>\n<p>\u018fg\u0259r qurulan qrafikd\u0259 <strong>sonlu sayda<\/strong> mar\u015frut a\u00e7arlar\u0131 varsa, bir ne\u00e7\u0259 t\u0259r\u0259fd\u0259n baxmaq laz\u0131md\u0131r <code>fanout exchange<\/code>, bunlar mar\u015frut a\u00e7arlar\u0131 il\u0259 1:1 ba\u011fl\u0131d\u0131r. Unutmayaq ki, <code>fanout exchange<\/code> \u0259n s\u00fcr\u0259tlidir.<\/p>\n<p><\/p>\n<p>\u018fg\u0259r mar\u015frutlar\u0131n say\u0131 <strong>sonsuzlu\u011fa meyillidirs\u0259<\/strong>, o zaman diqq\u0259t yetirm\u0259k laz\u0131md\u0131r <code>topic exchange<\/code> v\u0259 ya, \u0259g\u0259r \u015fablon laz\u0131m deyils\u0259, onda <code>direct exchange<\/code>, \u00e7\u00fcnki o, daha s\u00fcr\u0259tlidir. <code>topic exchange<\/code>.<\/p>\n<p><\/p>\n<p>M\u00fcxt\u0259lif <code>exchange<\/code> kombinasiyalar\u0131 d\u00fczg\u00fcn olan\u0131 tapma\u011fa k\u00f6m\u0259k etm\u0259lidir <strong>\u00f6l\u00e7\u00fcl\u0259n konfiqurasiya<\/strong>, h\u0259m cari, h\u0259m d\u0259 artan t\u0259l\u0259bl\u0259r\u0259 cavab verir.<\/p>\n<p><\/p>\n<p>Say <code>exchange<\/code> v\u0259 n\u00f6vb\u0259l\u0259rin say\u0131 mar\u015frutlar\u0131n say\u0131 il\u0259 m\u00fcqayis\u0259d\u0259 minimum olmal\u0131d\u0131r.<\/p>\n<p><\/p>\n<p>Sonrak\u0131 m\u0259qal\u0259d\u0259 N\u00f6vb\u0259l\u0259r v\u0259 Ba\u011flamalarla daha d\u0259rind\u0259n tan\u0131\u015f olaca\u011f\u0131q.<\/p>\n<p><\/p>\n<h3 id=\"ssylki\">Ba\u011flant\u0131lar<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.rabbitmq.com\/\">RabbitMQ layih\u0259sinin veb-sayt\u0131<\/a><\/noindex><\/li>\n<\/ul>\n<p>M\u0259nb\u0259: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/489086\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Exchange \u2014 \u043e\u0431\u043c\u0435\u043d\u043d\u0438\u043a \u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u0430 \u043e\u0431\u043c\u0435\u043d\u0430. \u0412 \u043d\u0435\u0433\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. Exchange \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u043e\u0434\u043d\u0443 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439. \u041e\u043d \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0432\u044f\u0437\u0435\u0439 (bindings) \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c \u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u044c\u044e. Exchange \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f Erlang-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c. \u0418\u0437 \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u0438 exchange \u2014 \u044d\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430 (\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u044c \u0441 \u043a\u043e\u0434\u043e\u043c, \u0433\u0434\u0435 \u043b\u0435\u0436\u0438\u0442 \u043b\u043e\u0433\u0438\u043a\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438) \u0432\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":69622,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-69621","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Exchange \u2014 \u043e\u0431\u043c\u0435\u043d\u043d\u0438\u043a \u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u0430 \u043e\u0431\u043c\u0435\u043d\u0430. \u0412 \u043d\u0435\u0433\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. Exchange \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u043e\u0434\u043d\u0443 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/az\/blog\/administrirovanie\/rabbitmq-chast-2-razbiraemsya-s-exchanges\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"az_AZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47RabbitMQ. \u0427\u0430\u0441\u0442\u044c 2. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441 Exchanges | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Exchange \u2014 \u043e\u0431\u043c\u0435\u043d\u043d\u0438\u043a \u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u0430 \u043e\u0431\u043c\u0435\u043d\u0430. \u0412 \u043d\u0435\u0433\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. Exchange \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u043e\u0434\u043d\u0443 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/az\/blog\/administrirovanie\/rabbitmq-chast-2-razbiraemsya-s-exchanges\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-20T23:56:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:14:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47RabbitMQ. Hiss\u0259 2. Exchanges il\u0259 tan\u0131\u015f olaq | ProHoster","description":"Exchange \u2014 m\u00fcbadil\u0259 m\u0259rk\u0259zi v\u0259 ya m\u00fcbadil\u0259 n\u00f6qt\u0259sidir. Buraya mesajlar g\u00f6nd\u0259rilir. Exchange mesaj\u0131 bir v\u0259 ya bir ne\u00e7\u0259 n\u00f6vb\u0259y\u0259 b\u00f6l\u00fc\u015fd\u00fcr\u00fcr.","canonical_url":"https:\/\/prohoster.info\/az\/blog\/administrirovanie\/rabbitmq-chast-2-razbiraemsya-s-exchanges","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"az_AZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47RabbitMQ. \u0427\u0430\u0441\u0442\u044c 2. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441 Exchanges | ProHoster","og:description":"Exchange \u2014 \u043e\u0431\u043c\u0435\u043d\u043d\u0438\u043a \u0438\u043b\u0438 \u0442\u043e\u0447\u043a\u0430 \u043e\u0431\u043c\u0435\u043d\u0430. \u0412 \u043d\u0435\u0433\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. Exchange \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u043e\u0434\u043d\u0443 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439.","og:url":"https:\/\/prohoster.info\/az\/blog\/administrirovanie\/rabbitmq-chast-2-razbiraemsya-s-exchanges","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-20T23:56:53+00:00","article:modified_time":"2020-03-03T13:14:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"69621","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:31:26","updated":"2022-09-28 03:24:29","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/posts\/69621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/comments?post=69621"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/posts\/69621\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/media\/69622"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/media?parent=69621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/categories?post=69621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/tags?post=69621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}