Exchange
- ਐਕਸਚੇਂਜਰ ਜਾਂ ਐਕਸਚੇਂਜ ਪੁਆਇੰਟ। ਇਸ ਨੂੰ ਸੁਨੇਹੇ ਭੇਜੇ ਜਾਂਦੇ ਹਨ। Exchange
ਸੁਨੇਹਾ ਵੰਡਦਾ ਹੈ ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ ਕਤਾਰਾਂ ਵਿੱਚ। ਉਹ ਸੁਨੇਹਿਆਂ ਨੂੰ ਇੱਕ ਕਤਾਰ ਵਿੱਚ ਭੇਜਦਾ ਹੈ ਬਣਾਏ ਗਏ ਲਿੰਕਾਂ 'ਤੇ ਆਧਾਰਿਤ (bindings
) ਇਸ ਅਤੇ ਕਤਾਰ ਦੇ ਵਿਚਕਾਰ।
Exchange
ਨਹੀਂ ਹੈ exchange
ਏਮਬੈਡਡ ਡੇਟਾਬੇਸ ਵਿੱਚ ਇੱਕ ਸਤਰ ਹੈ (ਕੋਡ ਦੇ ਨਾਲ ਮੋਡੀਊਲ ਦਾ ਲਿੰਕ ਜਿੱਥੇ ਰਾਊਟਿੰਗ ਤਰਕ ਹੈ)
ਵਿਸ਼ਾ-ਸੂਚੀ
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
ਇੱਕ ਧਾਰਨਾ ਹੈ ਡਿਫਾਲਟ ਐਕਸਚੇਂਜਰ. ਇਹ direct exchange
ਕੋਈ ਨਾਮ ਨਹੀਂ ਜੇਕਰ ਡਿਫਾਲਟ ਐਕਸਚੇਂਜਰ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਸੰਦੇਸ਼ ਨੂੰ ਬਰਾਬਰ ਨਾਮ ਵਾਲੀ ਕਤਾਰ ਵਿੱਚ ਭੇਜਿਆ ਜਾਵੇਗਾ ਸੁਨੇਹਾ ਰਾਊਟਿੰਗ ਕੁੰਜੀ.
ਵਿਸ਼ਾ ਵਟਾਂਦਰਾ
Topic exchange
- ਸਮਾਨ direct exchange
ਰਾਊਟਿੰਗ ਕੁੰਜੀ ਦੀ ਤੁਲਨਾ ਕਰਕੇ ਚੋਣਵੇਂ ਰੂਟਿੰਗ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ। ਪਰ, ਇਸ ਮਾਮਲੇ ਵਿੱਚ, ਕੁੰਜੀ ਦਿੱਤੀ ਗਈ ਹੈ ਟੈਪਲੇਟ ਦੁਆਰਾ. ਟੈਂਪਲੇਟ ਬਣਾਉਣ ਵੇਲੇ, ਵਰਤੋਂ 0
ਜਾਂ ਹੋਰ ਸ਼ਬਦ (ਅੱਖਰ AZ
и az
ਅਤੇ ਨੰਬਰ 0-9
), ਇੱਕ ਬਿੰਦੀ ਦੇ ਨਾਲ-ਨਾਲ ਚਿੰਨ੍ਹਾਂ ਦੁਆਰਾ ਵੱਖ ਕੀਤਾ ਗਿਆ *
и #
.
*
- ਬਿਲਕੁਲ ਨਾਲ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ1
ਸ਼ਬਦ#
- ਦੁਆਰਾ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ0
ਜਾਂ ਹੋਰ ਸ਼ਬਦ
ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:
ਸੰਸਕਰਣ ਤੋਂ ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ RabbitMQ 2.4.0
ਲਈ ਰੂਟਿੰਗ ਐਲਗੋਰਿਦਮ topic exchange
ਤੱਕ ਕੰਮ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰ ਦਿੱਤਾ 145
ਵਾਰ ਤੇਜ਼. ਉਨ੍ਹਾਂ ਨੇ ਪਹੁੰਚ ਨੂੰ ਲਾਗੂ ਕਰਕੇ ਇਹ ਪ੍ਰਾਪਤੀ ਕੀਤੀ a.b.c
, a.*.b.c
, a.#.c
и b.b.c
ਹੇਠ ਦਿੱਤੇ ਢਾਂਚੇ ਦੁਆਰਾ ਦਰਸਾਇਆ ਜਾਵੇਗਾ:
ਪੈਟਰਨ ਮੈਚਿੰਗ ਨੂੰ ਰੂਟ ਤੋਂ ਸ਼ੁਰੂ ਕਰਕੇ ਅਤੇ ਉੱਪਰ ਤੋਂ ਹੇਠਾਂ ਤੱਕ ਖੋਜਿਆ ਜਾਂਦਾ ਹੈ।
ਫੀਚਰ:
- ਇਸ ਐਕਸਚੇਂਜਰ ਦੀ ਵਰਤੋਂ ਬਣ ਸਕਦੀ ਹੈ ਸੰਭਾਵਿਤ ਭਵਿੱਖੀ ਐਪ ਵਿਕਾਸ ਲਈ ਇੱਕ ਵਧੀਆ ਵਿਕਲਪ, ਕਿਉਂਕਿ ਟੈਂਪਲੇਟਾਂ ਨੂੰ ਹਮੇਸ਼ਾਂ ਅਨੁਕੂਲਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਤਾਂ ਜੋ ਸੁਨੇਹਾ ਉਸੇ ਤਰ੍ਹਾਂ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਜਾ ਸਕੇ
direct exchange
ਜfanout exchange
- ਟੈਂਪਲੇਟਸ ਜੋ ਵਰਤਦੇ ਹਨ
*
ਬਹੁਤ ਤੇਜ਼ਉਹਨਾਂ ਟੈਂਪਲੇਟਾਂ ਨਾਲੋਂ ਜੋ ਵਰਤਦੇ ਹਨ#
. topic exchange
ਹੌਲੀdirect exchange
ਫੈਨਆਉਟ ਐਕਸਚੇਂਜ
Fanout exchange
- ਸਾਰੇ ਸੁਨੇਹੇ ਸਾਰੀਆਂ ਕਤਾਰਾਂ ਵਿੱਚ ਪਹੁੰਚਾਏ ਜਾਂਦੇ ਹਨ ਭਾਵੇਂ ਸੁਨੇਹੇ ਵਿੱਚ ਇੱਕ ਰਾਊਟਿੰਗ ਕੁੰਜੀ ਦਿੱਤੀ ਗਈ ਹੋਵੇ।
ਫੀਚਰ:
RabbitMQ
ਰਾਊਟਿੰਗ ਕੁੰਜੀਆਂ ਅਤੇ ਟੈਂਪਲੇਟਾਂ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰਦਾ ਜਿਸ ਦਾ ਪ੍ਰਦਰਸ਼ਨ 'ਤੇ ਸਕਾਰਾਤਮਕ ਪ੍ਰਭਾਵ ਪੈਂਦਾ ਹੈ। ਇਹ ਸਭ ਤੋਂ ਤੇਜ਼ ਹੈexchange
;- ਸਾਰੇ ਖਪਤਕਾਰਾਂ ਨੂੰ ਸਾਰੇ ਸੁਨੇਹਿਆਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ;
ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:
ਹੈਡਰ ਐਕਸਚੇਂਜ
Headers exchange
- (ਕੁੰਜੀ, ਮੁੱਲ) ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੇ ਜੋੜਿਆਂ ਦੀ ਤੁਲਨਾ ਦੇ ਆਧਾਰ 'ਤੇ ਸੰਬੰਧਿਤ ਕਤਾਰਾਂ ਲਈ ਸੰਦੇਸ਼ਾਂ ਨੂੰ ਨਿਰਦੇਸ਼ਤ ਕਰਦਾ ਹੈ headers
ਬਾਈਡਿੰਗ ਅਤੇ ਸਮਾਨ ਸੁਨੇਹਾ ਵਿਸ਼ੇਸ਼ਤਾ। headers
ਇੱਕ ਹੈ Dictionary<ключ, значение>
.
ਜੇਕਰ ਤੁਸੀਂ ਸ਼ਬਦਕੋਸ਼ ਵਿੱਚ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਕੁੰਜੀ ਜੋੜਦੇ ਹੋ x-match
ਅਰਥ ਦੇ ਨਾਲ any
, ਫਿਰ ਸੁਨੇਹਾ ਰੂਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜੇਕਰ ਜੋੜੇ (ਕੁੰਜੀ, ਮੁੱਲ) ਅੰਸ਼ਕ ਤੌਰ 'ਤੇ ਮੇਲ ਖਾਂਦੇ ਹਨ। ਇਹ ਵਿਵਹਾਰ ਓਪਰੇਟਰ ਦੇ ਸਮਾਨ ਹੈ or
.
var bindingArguments = new Dictinary<String, Object>();
bindingArguments.add("x-match", "any");
ਪੂਰਵ-ਨਿਰਧਾਰਤ ਕੁੰਜੀ x-match
ਇੱਕ ਮੁੱਲ ਰੱਖਦਾ ਹੈ all
. ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਜਦੋਂ ਜੋੜੇ (ਕੁੰਜੀ, ਮੁੱਲ) ਪੂਰੀ ਤਰ੍ਹਾਂ ਮੇਲ ਖਾਂਦੇ ਹਨ ਤਾਂ ਸੁਨੇਹਾ ਰੂਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਵਿਵਹਾਰ ਓਪਰੇਟਰ ਦੇ ਸਮਾਨ ਹੈ and
.
ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:
ਫੀਚਰ:
- ਵਾਧੂ ਲਚਕਤਾ
- ਵਾਧੂ ਕੰਪਿਊਟੇਸ਼ਨਲ ਓਵਰਹੈੱਡ। ਗੁਣ ਦੇ ਸਾਰੇ ਜੋੜੇ (ਕੁੰਜੀ, ਮੁੱਲ)
headers
ਸੁਨੇਹਾ ਰਾਊਟਿੰਗ ਮੁੱਲਾਂ ਦੀ ਗਣਨਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕੁੰਜੀ ਦੇ ਨਾਮ ਨਾਲ ਕ੍ਰਮਬੱਧ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਵਟਾਂਦਰੇ ਦੀਆਂ ਹੋਰ ਕਿਸਮਾਂ ਨਾਲੋਂ ਹੌਲੀ.
ਇਕਸਾਰ ਹੈਸ਼ਿੰਗ ਐਕਸਚੇਂਜ
ਇਹ ਐਕਸਚੇਂਜਰ ਹੈ RabbitMQ
.
Consistent-hashing exchange
(ਇਕਸਾਰ ਹੈਸ਼ਿੰਗ ਦੇ ਨਾਲ ਐਕਸਚੇਂਜ) - ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਇੱਕ ਸੁਨੇਹੇ ਦੇ ਸੰਭਾਵੀ ਪ੍ਰਾਪਤਕਰਤਾ ਹੋਣ ਵਾਲੀਆਂ ਕਈ ਕਤਾਰਾਂ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ ਜਦੋਂ ਤੁਹਾਨੂੰ ਉਹਨਾਂ ਵਿਚਕਾਰ ਲੋਡ ਨੂੰ ਸੰਤੁਲਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਸੁਨੇਹਾ ਭਾਰ ਦੁਆਰਾ ਕਤਾਰ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ (ਇਸ ਤੋਂ ਇੱਕ ਸ਼ਰਤੀਆ ਸਤਰ ਮੁੱਲ 0 - n
).
ਕਤਾਰਾਂ ਦਾ ਬਰਾਬਰ ਭਾਰ - ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਹਰੇਕ ਕਤਾਰ ਪ੍ਰਾਪਤ ਕਰੇਗੀ ਉਸੇ ਰਕਮ ਬਾਰੇ ਸੁਨੇਹੇ (ਹਰੇਕ ਸੰਦੇਸ਼ ਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਕਤਾਰ ਵਿੱਚ ਰੱਖਿਆ ਜਾਵੇਗਾ)। ਸੁਨੇਹਿਆਂ ਦੀ ਇਕਸਾਰ ਵੰਡ ਦੀ ਪੂਰੀ ਗਾਰੰਟੀ ਨਹੀਂ ਹੈ.
ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:
Hash
ਰਾਊਟਿੰਗ ਕੁੰਜੀ ਜਾਂ ਸੰਪੱਤੀ ਦੇ ਆਧਾਰ 'ਤੇ ਗਣਨਾ ਕੀਤੀ ਗਈ headers
ਸੁਨੇਹੇ। ਜੇਕਰ ਸਾਰੇ ਪ੍ਰਕਾਸ਼ਿਤ ਸੁਨੇਹਿਆਂ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਰੂਟਿੰਗ ਕੁੰਜੀਆਂ ਸਨ, ਜਾਂ headers
, ਫਿਰ ਵੰਡ ਭਾਰ ਦੁਆਰਾ ਹੋਵੇਗੀ। ਨਹੀਂ ਤਾਂ, ਰਾਊਟਿੰਗ ਕੁੰਜੀ ਵਰਤੀ ਜਾਵੇਗੀ, ਜਾਂ headers
.
ਉਦੋਂ ਮਦਦ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਜਦੋਂ ਖਪਤਕਾਰ ਥ੍ਰੁਪੁੱਟ ਨੂੰ ਇੱਕੋ ਕਤਾਰ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਕਈ ਖਪਤਕਾਰਾਂ ਦੇ ਨਾਲ ਇੱਕ ਹੱਲ ਨਾਲੋਂ ਉੱਚਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
ਐਕਸਚੇਂਜਰਾਂ ਦਾ ਸੁਮੇਲ (E2E)
ਸੰਚਾਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਾਰੇ ਐਕਸਚੇਂਜਰਾਂ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ ਵਟਾਂਦਰਾ-ਤੋਂ-ਵਟਾਂਦਰਾ (ਐਕਸਚੇਂਜਰਾਂ ਦਾ ਸੁਮੇਲ ਨਿਰਧਾਰਨ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ AMQP
. ਇਹ ਪਾਸੇ ਤੋਂ ਇੱਕ ਪ੍ਰੋਟੋਕੋਲ ਐਕਸਟੈਂਸ਼ਨ ਹੈ RabbitMQ
).
ਸੰਦੇਸ਼ ਦੇ ਪ੍ਰਵਾਹ ਦੀ ਗ੍ਰਾਫਿਕਲ ਪ੍ਰਤੀਨਿਧਤਾ:
ਦੇ ਖਰਚ 'ਤੇ E2E
ਅਸੀਂ ਸਹੀ ਸਕੇਲੇਬਲ ਸੰਰਚਨਾ ਲੱਭ ਸਕਦੇ ਹਾਂ ਜੋ ਮੌਜੂਦਾ ਅਤੇ ਵਧ ਰਹੀਆਂ ਲੋੜਾਂ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ।
ਇੱਕ ਐਕਸਚੇਂਜ ਬਣਾਓ
ਐਕਸਚੇਂਜਰ ਨੂੰ ਸਮਕਾਲੀ ਵਰਤ ਕੇ ਬਣਾਇਆ ਗਿਆ ਹੈ RPC
ਸਰਵਰ ਨੂੰ ਬੇਨਤੀ. ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬੇਨਤੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ Exchange.Declare
, ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਬੁਲਾਇਆ ਗਿਆ:
- ਐਕਸਚੇਂਜਰ ਦਾ ਨਾਮ
- ਐਕਸਚੇਂਜਰ ਦੀ ਕਿਸਮ
- ਹੋਰ ਵਿਕਲਪ
ਰਚਨਾ ਦੀ ਉਦਾਹਰਨ exchange
ਦੀ ਸਹਾਇਤਾ ਨਾਲ
//...
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
(ਵਿਕਲਪਕ ਐਕਸਚੇਂਜਰ). ਜੇਕਰ ਕੋਈ ਸੁਨੇਹਾ ਮੂਲ ਰੂਟ ਰਾਹੀਂ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਇੱਕ ਵੱਖਰੇ ਮਾਰਗ 'ਤੇ ਰੂਟ ਕੀਤੇ ਜਾਣ ਲਈ ਇੱਕ ਵਿਕਲਪਿਕ ਐਕਸਚੇਂਜ ਨੂੰ ਭੇਜਿਆ ਜਾ ਸਕਦਾ ਹੈ।
ਜੇ ਰਚਨਾ exchange
ਸੰਭਵ ਤੌਰ 'ਤੇ, ਫਿਰ ਸਰਵਰ ਕਲਾਇੰਟ ਨੂੰ ਇੱਕ ਸਮਕਾਲੀ ਭੇਜੇਗਾ RPC
ਜਵਾਬ Exchange.DeclareOk
. ਜੇ ਰਚਨਾ ਅਸੰਭਵ ਹੈ (ਬੇਨਤੀ 'ਤੇ ਇਨਕਾਰ ਕੀਤਾ ਗਿਆ ਸੀ Exchange.Declare
), ਫਿਰ ਚੈਨਲ ਬੰਦ ਹੋ ਜਾਵੇਗਾ ਇੱਕ ਅਸਿੰਕਰੋਨਸ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸਰਵਰ Channel.Close
ਅਤੇ ਗਾਹਕ ਨੂੰ ਇੱਕ ਅਪਵਾਦ ਮਿਲੇਗਾ
ਪੋਸਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਐਕਸਚੇਂਜਰ ਬਣਾਇਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਗੈਰ-ਮੌਜੂਦ ਐਕਸਚੇਂਜਰ ਨੂੰ ਇੱਕ ਸੁਨੇਹਾ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦੇ ਹੋ - RabbitMQ
ਚੁੱਪਚਾਪ ਇਸ ਨੂੰ ਹਟਾਓ.
ਇੱਕ ਐਕਸਚੇਂਜ GUI ਬਣਾਓ
ਐਡਮਿਨ ਪੈਨਲ 'ਤੇ ਜਾਓ RabbitMQ
ਉਪਭੋਗਤਾ ਦੇ ਅਧੀਨ guest
(ਉਪਭੋਗਤਾ ਨਾਮ: guest
ਅਤੇ ਪਾਸਵਰਡ: guest
). ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਉਪਭੋਗਤਾ guest
ਸਿਰਫ ਲੋਕਲਹੋਸਟ ਤੋਂ ਜੁੜ ਸਕਦਾ ਹੈ। ਹੁਣ ਟੈਬ 'ਤੇ ਚੱਲੀਏ Exchanges
ਅਤੇ 'ਤੇ ਕਲਿੱਕ ਕਰੋ Add a new exchange
. ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਭਰੋ:
ਜ਼ਿਆਦਾਤਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਉੱਪਰ ਵਰਣਨ ਕੀਤਾ ਗਿਆ ਹੈ. ਇੱਥੇ ਅਸੀਂ ਨੋਟ ਕਰਦੇ ਹਾਂ ਕਿ ਜੇ ਅਸੀਂ ਸੈਟ ਕਰਦੇ ਹਾਂ Internal
, ਤਦ ਐਕਸਚੇਂਜ ਸਿਰਫ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ E2E
. Producer
ਅਜਿਹੇ ਐਕਸਚੇਂਜ ਨੂੰ ਸੁਨੇਹੇ ਭੇਜਣ ਦੇ ਯੋਗ ਨਹੀਂ ਹੋਣਗੇ।
ਸਿੱਟਾ
ਇੱਕ ਸਿਸਟਮ ਨੂੰ ਵਿਕਸਿਤ ਕਰਦੇ ਸਮੇਂ, ਟੌਪੌਲੋਜੀ ਦਾ ਵਰਣਨ ਕਰਨਾ ਸੁਵਿਧਾਜਨਕ ਹੁੰਦਾ ਹੈ
ਜੇਕਰ ਨਿਰਮਿਤ ਗ੍ਰਾਫ ਵਿੱਚ ਮੌਜੂਦ ਹੈ ਸੀਮਿਤ ਸੈੱਟ ਰਾਊਟਿੰਗ ਕੁੰਜੀਆਂ, ਫਿਰ, ਇਹ ਕਈਆਂ ਵੱਲ ਦੇਖਣ ਦੇ ਯੋਗ ਹੈ fanout exchange
, ਜੋ ਕਿ 1:1 ਰਾਊਟਿੰਗ ਕੁੰਜੀ ਨਾਲ ਸੰਬੰਧਿਤ ਹਨ। ਯਾਦ ਰੱਖੋ ਕਿ fanout exchange
ਸਭ ਤੋਂ ਤੇਜ.
ਜੇਕਰ ਰੂਟਾਂ ਦੀ ਗਿਣਤੀ ਹੈ ਅਨੰਤਤਾ ਵੱਲ ਝੁਕਦਾ ਹੈ, ਇਸ 'ਤੇ ਧਿਆਨ ਦੇਣ ਯੋਗ ਹੈ topic exchange
ਜਾਂ, ਜੇਕਰ ਟੈਂਪਲੇਟ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਚੁਣ ਸਕਦੇ ਹੋ direct exchnge
, ਕਿਉਂਕਿ ਉਹ ਤੇਜ਼ ਹੈ topic exchange
.
ਵੱਖ-ਵੱਖ ਦੇ ਸੰਜੋਗ exchange
ਤੁਹਾਨੂੰ ਸਹੀ ਲੱਭਣ ਵਿੱਚ ਮਦਦ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਸਕੇਲੇਬਲ ਸੰਰਚਨਾ, ਜੋ ਮੌਜੂਦਾ ਅਤੇ ਵਧ ਰਹੀ ਸਿਸਟਮ ਲੋੜਾਂ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ।
ਦੀ ਗਿਣਤੀ exchange
ਅਤੇ ਰੂਟਾਂ ਦੀ ਗਿਣਤੀ ਦੇ ਮੁਕਾਬਲੇ ਕਤਾਰਾਂ ਘੱਟ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ।
ਅਗਲੇ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਕਤਾਰਾਂ ਅਤੇ ਬੰਧਨਾਂ ਬਾਰੇ ਹੋਰ ਸਮਝਣਾ ਸ਼ੁਰੂ ਕਰਾਂਗੇ।
ਹਵਾਲੇ
ਸਰੋਤ: www.habr.com