RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ

Exchange - ਐਕਸਚੇਂਜਰ ਜਾਂ ਐਕਸਚੇਂਜ ਪੁਆਇੰਟ। ਇਸ ਨੂੰ ਸੁਨੇਹੇ ਭੇਜੇ ਜਾਂਦੇ ਹਨ। Exchange ਸੁਨੇਹਾ ਵੰਡਦਾ ਹੈ ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ ਕਤਾਰਾਂ ਵਿੱਚ। ਉਹ ਸੁਨੇਹਿਆਂ ਨੂੰ ਇੱਕ ਕਤਾਰ ਵਿੱਚ ਭੇਜਦਾ ਹੈ ਬਣਾਏ ਗਏ ਲਿੰਕਾਂ 'ਤੇ ਆਧਾਰਿਤ (bindings) ਇਸ ਅਤੇ ਕਤਾਰ ਦੇ ਵਿਚਕਾਰ।

Exchange ਨਹੀਂ ਹੈ ਅਰਲਾਂਗ ਪ੍ਰਕਿਰਿਆ. ਸਕੇਲੇਬਿਲਟੀ ਦੇ ਕਾਰਨਾਂ ਕਰਕੇ exchange ਏਮਬੈਡਡ ਡੇਟਾਬੇਸ ਵਿੱਚ ਇੱਕ ਸਤਰ ਹੈ (ਕੋਡ ਦੇ ਨਾਲ ਮੋਡੀਊਲ ਦਾ ਲਿੰਕ ਜਿੱਥੇ ਰਾਊਟਿੰਗ ਤਰਕ ਹੈ) ਮਨੇਸ਼ੀਆ. 1 ਹਜ਼ਾਰ ਐਕਸਚੇਂਜਰ ਸਿਰਫ 1MB ਮੈਮੋਰੀ ਦੀ ਖਪਤ ਕਰਨਗੇ।

ਵਿਸ਼ਾ-ਸੂਚੀ

  • RabbitMQ. ਭਾਗ 1. ਜਾਣ-ਪਛਾਣ। Erlang, AMQP ਅਤੇ RPC
  • RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ
  • RabbitMQ. ਭਾਗ 3. ਕਤਾਰਾਂ ਅਤੇ ਬੰਧਨਾਂ ਨੂੰ ਸਮਝਣਾ
  • RabbitMQ. ਭਾਗ 4. ਸੁਨੇਹਿਆਂ ਅਤੇ ਫਰੇਮਾਂ ਨਾਲ ਨਜਿੱਠਣਾ
  • RabbitMQ. ਭਾਗ 5: ਸੰਦੇਸ਼ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਨਾ ਅਤੇ ਖਪਤ ਕਰਨਾ
  • RabbitMQ. ਭਾਗ 6. ਫੈਡਰੇਸ਼ਨ ਅਤੇ ਸ਼ੋਵਲ ਮੋਡੀਊਲ ਦੀ ਸੰਖੇਪ ਜਾਣਕਾਰੀ
  • RabbitMQ. ਭਾਗ 7. ਕਨੈਕਸ਼ਨ ਅਤੇ ਚੈਨਲ ਬਾਰੇ ਵੇਰਵੇ
  • RabbitMQ. ਭਾਗ 8. .NET ਵਿੱਚ RabbitMQ
  • RabbitMQ. ਭਾਗ 9. ਨਿਗਰਾਨੀ

ਡਾਇਰੈਕਟ ਐਕਸਚੇਂਜ

Direct exchange - ਲੋੜ ਪੈਣ 'ਤੇ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਖਾਸ ਕਤਾਰਾਂ ਨੂੰ ਸੁਨੇਹਾ ਪਹੁੰਚਾਓ. ਸੁਨੇਹਾ ਐਕਸਚੇਂਜਰ ਨੂੰ ਇੱਕ ਖਾਸ ਨਾਲ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਰੂਟਿੰਗ ਕੁੰਜੀ ਅਤੇ ਇੱਕ ਸਮਾਨ ਰੂਟਿੰਗ ਕੁੰਜੀ ਨਾਲ ਇਸ ਐਕਸਚੇਂਜਰ ਨਾਲ ਜੁੜੀਆਂ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋ ਜਾਂਦਾ ਹੈ। ਰੂਟਿੰਗ ਕੁੰਜੀ ਇੱਕ ਸਤਰ ਹੈ. ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮੈਚਿੰਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਸਮਾਨਤਾ ਲਈ ਸਤਰਾਂ ਦੀ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ.

ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:

RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ

В rabbitmq ਇੱਕ ਧਾਰਨਾ ਹੈ ਡਿਫਾਲਟ ਐਕਸਚੇਂਜਰ. ਇਹ direct exchange ਕੋਈ ਨਾਮ ਨਹੀਂ ਜੇਕਰ ਡਿਫਾਲਟ ਐਕਸਚੇਂਜਰ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਸੰਦੇਸ਼ ਨੂੰ ਬਰਾਬਰ ਨਾਮ ਵਾਲੀ ਕਤਾਰ ਵਿੱਚ ਭੇਜਿਆ ਜਾਵੇਗਾ ਸੁਨੇਹਾ ਰਾਊਟਿੰਗ ਕੁੰਜੀ.

ਵਿਸ਼ਾ ਵਟਾਂਦਰਾ

Topic exchange - ਸਮਾਨ direct exchange ਰਾਊਟਿੰਗ ਕੁੰਜੀ ਦੀ ਤੁਲਨਾ ਕਰਕੇ ਚੋਣਵੇਂ ਰੂਟਿੰਗ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ। ਪਰ, ਇਸ ਮਾਮਲੇ ਵਿੱਚ, ਕੁੰਜੀ ਦਿੱਤੀ ਗਈ ਹੈ ਟੈਪਲੇਟ ਦੁਆਰਾ. ਟੈਂਪਲੇਟ ਬਣਾਉਣ ਵੇਲੇ, ਵਰਤੋਂ 0 ਜਾਂ ਹੋਰ ਸ਼ਬਦ (ਅੱਖਰ AZ и az ਅਤੇ ਨੰਬਰ 0-9), ਇੱਕ ਬਿੰਦੀ ਦੇ ਨਾਲ-ਨਾਲ ਚਿੰਨ੍ਹਾਂ ਦੁਆਰਾ ਵੱਖ ਕੀਤਾ ਗਿਆ * и #.

  • * - ਬਿਲਕੁਲ ਨਾਲ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ 1 ਸ਼ਬਦ
  • # - ਦੁਆਰਾ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ 0 ਜਾਂ ਹੋਰ ਸ਼ਬਦ

ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:

RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ

ਸੰਸਕਰਣ ਤੋਂ ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ RabbitMQ 2.4.0 ਲਈ ਰੂਟਿੰਗ ਐਲਗੋਰਿਦਮ topic exchange ਤੱਕ ਕੰਮ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰ ਦਿੱਤਾ 145 ਵਾਰ ਤੇਜ਼. ਉਨ੍ਹਾਂ ਨੇ ਪਹੁੰਚ ਨੂੰ ਲਾਗੂ ਕਰਕੇ ਇਹ ਪ੍ਰਾਪਤੀ ਕੀਤੀ ਲਾਗੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ, ਜੋ ਕਿ ਇੱਕ ਰੁੱਖ ਦੀ ਬਣਤਰ ਦੇ ਰੂਪ ਵਿੱਚ ਟੈਂਪਲੇਟਾਂ ਦੀ ਨੁਮਾਇੰਦਗੀ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ ਟੈਂਪਲੇਟਸ a.b.c, a.*.b.c, a.#.c и b.b.c ਹੇਠ ਦਿੱਤੇ ਢਾਂਚੇ ਦੁਆਰਾ ਦਰਸਾਇਆ ਜਾਵੇਗਾ:

RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ

ਪੈਟਰਨ ਮੈਚਿੰਗ ਨੂੰ ਰੂਟ ਤੋਂ ਸ਼ੁਰੂ ਕਰਕੇ ਅਤੇ ਉੱਪਰ ਤੋਂ ਹੇਠਾਂ ਤੱਕ ਖੋਜਿਆ ਜਾਂਦਾ ਹੈ।

ਫੀਚਰ:

  • ਇਸ ਐਕਸਚੇਂਜਰ ਦੀ ਵਰਤੋਂ ਬਣ ਸਕਦੀ ਹੈ ਸੰਭਾਵਿਤ ਭਵਿੱਖੀ ਐਪ ਵਿਕਾਸ ਲਈ ਇੱਕ ਵਧੀਆ ਵਿਕਲਪ, ਕਿਉਂਕਿ ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਹਮੇਸ਼ਾਂ ਅਨੁਕੂਲਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਤਾਂ ਜੋ ਸੁਨੇਹਾ ਉਸੇ ਤਰ੍ਹਾਂ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਜਾ ਸਕੇ direct exchangefanout exchange
  • ਟੈਂਪਲੇਟਸ ਜੋ ਵਰਤਦੇ ਹਨ * ਬਹੁਤ ਤੇਜ਼ਉਹਨਾਂ ਟੈਂਪਲੇਟਾਂ ਨਾਲੋਂ ਜੋ ਵਰਤਦੇ ਹਨ #.
  • topic exchange ਹੌਲੀ direct exchange

ਫੈਨਆਉਟ ਐਕਸਚੇਂਜ

Fanout exchange - ਸਾਰੇ ਸੁਨੇਹੇ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਵਿੱਚ ਪਹੁੰਚਾਏ ਜਾਂਦੇ ਹਨ ਭਾਵੇਂ ਸੁਨੇਹੇ ਵਿੱਚ ਇੱਕ ਰਾਊਟਿੰਗ ਕੁੰਜੀ ਦਿੱਤੀ ਗਈ ਹੋਵੇ।

ਫੀਚਰ:

  • RabbitMQ ਰਾਊਟਿੰਗ ਕੁੰਜੀਆਂ ਅਤੇ ਟੈਂਪਲੇਟਾਂ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰਦਾ ਜਿਸ ਦਾ ਪ੍ਰਦਰਸ਼ਨ 'ਤੇ ਸਕਾਰਾਤਮਕ ਪ੍ਰਭਾਵ ਪੈਂਦਾ ਹੈ। ਇਹ ਸਭ ਤੋਂ ਤੇਜ਼ ਹੈ exchange;
  • ਸਾਰੇ ਖਪਤਕਾਰਾਂ ਨੂੰ ਸਾਰੇ ਸੁਨੇਹਿਆਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ;

ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:

RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ

ਹੈਡਰ ਐਕਸਚੇਂਜ

Headers exchange - (ਕੁੰਜੀ, ਮੁੱਲ) ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੇ ਜੋੜਿਆਂ ਦੀ ਤੁਲਨਾ ਦੇ ਆਧਾਰ 'ਤੇ ਸੰਬੰਧਿਤ ਕਤਾਰਾਂ ਲਈ ਸੰਦੇਸ਼ਾਂ ਨੂੰ ਨਿਰਦੇਸ਼ਤ ਕਰਦਾ ਹੈ headers ਬਾਈਡਿੰਗ ਅਤੇ ਸਮਾਨ ਸੁਨੇਹਾ ਵਿਸ਼ੇਸ਼ਤਾ। headers ਇੱਕ ਹੈ Dictionary<ключ, значение>.

ਜੇਕਰ ਤੁਸੀਂ ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਕੁੰਜੀ ਜੋੜਦੇ ਹੋ x-match ਅਰਥ ਦੇ ਨਾਲ any, ਫਿਰ ਸੁਨੇਹਾ ਰੂਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜੇਕਰ ਜੋੜੇ (ਕੁੰਜੀ, ਮੁੱਲ) ਅੰਸ਼ਕ ਤੌਰ 'ਤੇ ਮੇਲ ਖਾਂਦੇ ਹਨ। ਇਹ ਵਿਵਹਾਰ ਓਪਰੇਟਰ ਦੇ ਸਮਾਨ ਹੈ or.

var bindingArguments = new Dictinary<String, Object>();
bindingArguments.add("x-match", "any");

ਪੂਰਵ-ਨਿਰਧਾਰਤ ਕੁੰਜੀ x-match ਇੱਕ ਮੁੱਲ ਰੱਖਦਾ ਹੈ all. ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਜਦੋਂ ਜੋੜੇ (ਕੁੰਜੀ, ਮੁੱਲ) ਪੂਰੀ ਤਰ੍ਹਾਂ ਮੇਲ ਖਾਂਦੇ ਹਨ ਤਾਂ ਸੁਨੇਹਾ ਰੂਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਵਿਵਹਾਰ ਓਪਰੇਟਰ ਦੇ ਸਮਾਨ ਹੈ and.

ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:

RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ

ਫੀਚਰ:

  • ਵਾਧੂ ਲਚਕਤਾ
  • ਵਾਧੂ ਕੰਪਿਊਟੇਸ਼ਨਲ ਓਵਰਹੈੱਡ। ਗੁਣ ਦੇ ਸਾਰੇ ਜੋੜੇ (ਕੁੰਜੀ, ਮੁੱਲ) headers ਸੁਨੇਹਾ ਰਾਊਟਿੰਗ ਮੁੱਲਾਂ ਦੀ ਗਣਨਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕੁੰਜੀ ਦੇ ਨਾਮ ਨਾਲ ਕ੍ਰਮਬੱਧ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਵਟਾਂਦਰੇ ਦੀਆਂ ਹੋਰ ਕਿਸਮਾਂ ਨਾਲੋਂ ਹੌਲੀ.

ਇਕਸਾਰ ਹੈਸ਼ਿੰਗ ਐਕਸਚੇਂਜ

ਇਹ ਐਕਸਚੇਂਜਰ ਹੈ ਪਲੱਗਇਨ и ਵਿੱਚ ਨਹੀਂ ਬਣਾਇਆ ਗਿਆ в RabbitMQ.

Consistent-hashing exchange (ਇਕਸਾਰ ਹੈਸ਼ਿੰਗ ਦੇ ਨਾਲ ਐਕਸਚੇਂਜ) - ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਇੱਕ ਸੁਨੇਹੇ ਦੇ ਸੰਭਾਵੀ ਪ੍ਰਾਪਤਕਰਤਾ ਹੋਣ ਵਾਲੀਆਂ ਕਈ ਕਤਾਰਾਂ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ ਜਦੋਂ ਤੁਹਾਨੂੰ ਉਹਨਾਂ ਵਿਚਕਾਰ ਲੋਡ ਨੂੰ ਸੰਤੁਲਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਸੁਨੇਹਾ ਭਾਰ ਦੁਆਰਾ ਕਤਾਰ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ (ਇਸ ਤੋਂ ਇੱਕ ਸ਼ਰਤੀਆ ਸਤਰ ਮੁੱਲ 0 - n).

ਕਤਾਰਾਂ ਦਾ ਬਰਾਬਰ ਭਾਰ - ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਹਰੇਕ ਕਤਾਰ ਪ੍ਰਾਪਤ ਕਰੇਗੀ ਉਸੇ ਰਕਮ ਬਾਰੇ ਸੁਨੇਹੇ (ਹਰੇਕ ਸੰਦੇਸ਼ ਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਕਤਾਰ ਵਿੱਚ ਰੱਖਿਆ ਜਾਵੇਗਾ)। ਸੁਨੇਹਿਆਂ ਦੀ ਇਕਸਾਰ ਵੰਡ ਦੀ ਪੂਰੀ ਗਾਰੰਟੀ ਨਹੀਂ ਹੈ.

ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:

RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ

Hash ਰਾਊਟਿੰਗ ਕੁੰਜੀ ਜਾਂ ਸੰਪੱਤੀ ਦੇ ਆਧਾਰ 'ਤੇ ਗਣਨਾ ਕੀਤੀ ਗਈ headers ਸੁਨੇਹੇ। ਜੇਕਰ ਸਾਰੇ ਪ੍ਰਕਾਸ਼ਿਤ ਸੁਨੇਹਿਆਂ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਰੂਟਿੰਗ ਕੁੰਜੀਆਂ ਸਨ, ਜਾਂ headers, ਫਿਰ ਵੰਡ ਭਾਰ ਦੁਆਰਾ ਹੋਵੇਗੀ। ਨਹੀਂ ਤਾਂ, ਰਾਊਟਿੰਗ ਕੁੰਜੀ ਵਰਤੀ ਜਾਵੇਗੀ, ਜਾਂ headers.

ਉਦੋਂ ਮਦਦ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਜਦੋਂ ਖਪਤਕਾਰ ਥ੍ਰੁਪੁੱਟ ਨੂੰ ਇੱਕੋ ਕਤਾਰ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਕਈ ਖਪਤਕਾਰਾਂ ਦੇ ਨਾਲ ਇੱਕ ਹੱਲ ਨਾਲੋਂ ਉੱਚਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।

ਐਕਸਚੇਂਜਰਾਂ ਦਾ ਸੁਮੇਲ (E2E)

ਸੰਚਾਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਾਰੇ ਐਕਸਚੇਂਜਰਾਂ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ ਵਟਾਂਦਰਾ-ਤੋਂ-ਵਟਾਂਦਰਾ (ਐਕਸਚੇਂਜਰਾਂ ਦਾ ਸੁਮੇਲ ਨਿਰਧਾਰਨ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ AMQP. ਇਹ ਪਾਸੇ ਤੋਂ ਇੱਕ ਪ੍ਰੋਟੋਕੋਲ ਐਕਸਟੈਂਸ਼ਨ ਹੈ RabbitMQ).

ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:

RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ

ਦੇ ਖਰਚ 'ਤੇ E2E ਅਸੀਂ ਸਹੀ ਸਕੇਲੇਬਲ ਸੰਰਚਨਾ ਲੱਭ ਸਕਦੇ ਹਾਂ ਜੋ ਮੌਜੂਦਾ ਅਤੇ ਵਧ ਰਹੀਆਂ ਲੋੜਾਂ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ।

ਇੱਕ ਐਕਸਚੇਂਜ ਬਣਾਓ

ਐਕਸਚੇਂਜਰ ਨੂੰ ਸਮਕਾਲੀ ਵਰਤ ਕੇ ਬਣਾਇਆ ਗਿਆ ਹੈ RPC ਸਰਵਰ ਨੂੰ ਬੇਨਤੀ. ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬੇਨਤੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ Exchange.Declare, ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਬੁਲਾਇਆ ਗਿਆ:

  • ਐਕਸਚੇਂਜਰ ਦਾ ਨਾਮ
  • ਐਕਸਚੇਂਜਰ ਦੀ ਕਿਸਮ
  • ਹੋਰ ਵਿਕਲਪ

ਰਚਨਾ ਦੀ ਉਦਾਹਰਨ exchange ਦੀ ਸਹਾਇਤਾ ਨਾਲ RabbitMQ.Client:

//...
channel.ExchangeDeclare(
    exchange: "my_exchange",
    type: "direct",
    durable: "false",
    autoDelete: "false",
    arguments: null
);
//...

  • exchange - ਐਕਸਚੇਂਜਰ ਦਾ ਨਾਮ ਜੋ ਅਸੀਂ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹਾਂ। ਨਾਮ ਵਿਲੱਖਣ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ
  • type - ਐਕਸਚੇਂਜਰ ਦੀ ਕਿਸਮ
  • durable - ਜੇਕਰ ਇੰਸਟਾਲ ਹੈ true, ਫਿਰ exchange ਸਥਾਈ ਹੋ ਜਾਵੇਗਾ. ਇਹ ਡਿਸਕ 'ਤੇ ਸਟੋਰ ਕੀਤਾ ਜਾਵੇਗਾ ਅਤੇ ਸਰਵਰ/ਬ੍ਰੋਕਰ ਰੀਸਟਾਰਟ ਤੋਂ ਬਚਣ ਦੇ ਯੋਗ ਹੋਵੇਗਾ। ਜੇਕਰ ਮੁੱਲ false, ਫਿਰ exchange ਅਸਥਾਈ ਹੈ ਅਤੇ ਸਰਵਰ/ਬ੍ਰੋਕਰ ਦੇ ਮੁੜ ਚਾਲੂ ਹੋਣ 'ਤੇ ਹਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ
  • autoDelete - ਆਟੋਮੈਟਿਕ ਮਿਟਾਉਣਾ. Exchange ਸਾਰੀਆਂ ਸਬੰਧਿਤ ਕਤਾਰਾਂ ਨੂੰ ਮਿਟਾ ਦਿੱਤੇ ਜਾਣ 'ਤੇ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ
  • arguments ਵਿਕਲਪਿਕ ਦਲੀਲਾਂ ਹਨ। ਬਹੁਤੇ ਅਕਸਰ, ਆਰਗੂਮੈਂਟ ਸੈੱਟ ਦੁਆਰਾ alternative exchange (ਵਿਕਲਪਕ ਐਕਸਚੇਂਜਰ). ਜੇਕਰ ਕੋਈ ਸੁਨੇਹਾ ਮੂਲ ਰੂਟ ਰਾਹੀਂ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਇੱਕ ਵੱਖਰੇ ਮਾਰਗ 'ਤੇ ਰੂਟ ਕੀਤੇ ਜਾਣ ਲਈ ਇੱਕ ਵਿਕਲਪਿਕ ਐਕਸਚੇਂਜ ਨੂੰ ਭੇਜਿਆ ਜਾ ਸਕਦਾ ਹੈ।

RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ

ਜੇ ਰਚਨਾ exchange ਸੰਭਵ ਤੌਰ 'ਤੇ, ਫਿਰ ਸਰਵਰ ਕਲਾਇੰਟ ਨੂੰ ਇੱਕ ਸਮਕਾਲੀ ਭੇਜੇਗਾ RPC ਜਵਾਬ Exchange.DeclareOk. ਜੇ ਰਚਨਾ ਅਸੰਭਵ ਹੈ (ਬੇਨਤੀ 'ਤੇ ਇਨਕਾਰ ਕੀਤਾ ਗਿਆ ਸੀ Exchange.Declare), ਫਿਰ ਚੈਨਲ ਬੰਦ ਹੋ ਜਾਵੇਗਾ ਇੱਕ ਅਸਿੰਕਰੋਨਸ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸਰਵਰ Channel.Close ਅਤੇ ਗਾਹਕ ਨੂੰ ਇੱਕ ਅਪਵਾਦ ਮਿਲੇਗਾ Operation InterruptedException, ਜਿਸ ਵਿੱਚ ਗਲਤੀ ਕੋਡ ਅਤੇ ਇਸਦਾ ਵੇਰਵਾ ਹੋਵੇਗਾ।

ਪੋਸਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਐਕਸਚੇਂਜਰ ਬਣਾਇਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਗੈਰ-ਮੌਜੂਦ ਐਕਸਚੇਂਜਰ ਨੂੰ ਇੱਕ ਸੁਨੇਹਾ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦੇ ਹੋ - RabbitMQ ਚੁੱਪਚਾਪ ਇਸ ਨੂੰ ਹਟਾਓ.

ਇੱਕ ਐਕਸਚੇਂਜ GUI ਬਣਾਓ

ਐਡਮਿਨ ਪੈਨਲ 'ਤੇ ਜਾਓ RabbitMQ ਉਪਭੋਗਤਾ ਦੇ ਅਧੀਨ guest (ਉਪਭੋਗਤਾ ਨਾਮ: guest ਅਤੇ ਪਾਸਵਰਡ: guest). ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਉਪਭੋਗਤਾ guest ਸਿਰਫ ਲੋਕਲਹੋਸਟ ਤੋਂ ਜੁੜ ਸਕਦਾ ਹੈ। ਹੁਣ ਟੈਬ 'ਤੇ ਚੱਲੀਏ Exchanges ਅਤੇ 'ਤੇ ਕਲਿੱਕ ਕਰੋ Add a new exchange. ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਭਰੋ:

RabbitMQ. ਭਾਗ 2. ਐਕਸਚੇਂਜ ਨੂੰ ਸਮਝਣਾ

ਜ਼ਿਆਦਾਤਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਉੱਪਰ ਵਰਣਨ ਕੀਤਾ ਗਿਆ ਹੈ. ਇੱਥੇ ਅਸੀਂ ਨੋਟ ਕਰਦੇ ਹਾਂ ਕਿ ਜੇ ਅਸੀਂ ਸੈਟ ਕਰਦੇ ਹਾਂ Internal, ਤਦ ਐਕਸਚੇਂਜ ਸਿਰਫ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ E2E. Producer ਅਜਿਹੇ ਐਕਸਚੇਂਜ ਨੂੰ ਸੁਨੇਹੇ ਭੇਜਣ ਦੇ ਯੋਗ ਨਹੀਂ ਹੋਣਗੇ।

ਸਿੱਟਾ

ਇੱਕ ਸਿਸਟਮ ਨੂੰ ਵਿਕਸਿਤ ਕਰਦੇ ਸਮੇਂ, ਟੌਪੌਲੋਜੀ ਦਾ ਵਰਣਨ ਕਰਨਾ ਸੁਵਿਧਾਜਨਕ ਹੁੰਦਾ ਹੈ ਰੂਟਿੰਗ ਇੱਕ ਗ੍ਰਾਫ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ. ਪਰ ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਕਿ ਤੁਸੀਂ ਇੱਕ ਗ੍ਰਾਫ ਬਣਾਉਣਾ ਸ਼ੁਰੂ ਕਰੋ, ਇਹ ਉੱਚ ਆਵਾਜਾਈ ਵਾਲੇ ਮਾਰਗਾਂ ਨੂੰ ਉਜਾਗਰ ਕਰਨ ਦੇ ਯੋਗ ਹੈ, ਕਿਉਂਕਿ. ਉਹ ਲੋੜ ਹੈ ਉੱਚ ਥ੍ਰੋਪੁੱਟ (ਕਾਰਗੁਜ਼ਾਰੀ)। ਅੱਗੇ, ਤੁਸੀਂ ਟ੍ਰੈਫਿਕ ਦਾ ਵਰਗੀਕਰਨ ਕਰ ਸਕਦੇ ਹੋ। ਅਤੇ ਫਿਰ ਉਸਾਰੀ ਸ਼ੁਰੂ ਕਰੋ.

ਜੇਕਰ ਨਿਰਮਿਤ ਗ੍ਰਾਫ ਵਿੱਚ ਮੌਜੂਦ ਹੈ ਸੀਮਿਤ ਸੈੱਟ ਰਾਊਟਿੰਗ ਕੁੰਜੀਆਂ, ਫਿਰ, ਇਹ ਕਈਆਂ ਵੱਲ ਦੇਖਣ ਦੇ ਯੋਗ ਹੈ fanout exchange, ਜੋ ਕਿ 1:1 ਰਾਊਟਿੰਗ ਕੁੰਜੀ ਨਾਲ ਸੰਬੰਧਿਤ ਹਨ। ਯਾਦ ਰੱਖੋ ਕਿ fanout exchange ਸਭ ਤੋਂ ਤੇਜ.

ਜੇਕਰ ਰੂਟਾਂ ਦੀ ਗਿਣਤੀ ਹੈ ਅਨੰਤਤਾ ਵੱਲ ਝੁਕਦਾ ਹੈ, ਇਸ 'ਤੇ ਧਿਆਨ ਦੇਣ ਯੋਗ ਹੈ topic exchange ਜਾਂ, ਜੇਕਰ ਟੈਂਪਲੇਟ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਚੁਣ ਸਕਦੇ ਹੋ direct exchnge, ਕਿਉਂਕਿ ਉਹ ਤੇਜ਼ ਹੈ topic exchange.

ਵੱਖ-ਵੱਖ ਦੇ ਸੰਜੋਗ exchange ਤੁਹਾਨੂੰ ਸਹੀ ਲੱਭਣ ਵਿੱਚ ਮਦਦ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਸਕੇਲੇਬਲ ਸੰਰਚਨਾ, ਜੋ ਮੌਜੂਦਾ ਅਤੇ ਵਧ ਰਹੀ ਸਿਸਟਮ ਲੋੜਾਂ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ।

ਦੀ ਗਿਣਤੀ exchange ਅਤੇ ਰੂਟਾਂ ਦੀ ਗਿਣਤੀ ਦੇ ਮੁਕਾਬਲੇ ਕਤਾਰਾਂ ਘੱਟ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ।

ਅਗਲੇ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਕਤਾਰਾਂ ਅਤੇ ਬੰਧਨਾਂ ਬਾਰੇ ਹੋਰ ਸਮਝਣਾ ਸ਼ੁਰੂ ਕਰਾਂਗੇ।

ਹਵਾਲੇ

ਸਰੋਤ: www.habr.com

ਇੱਕ ਟਿੱਪਣੀ ਜੋੜੋ