ਅਸੀਂ ਆਪਣੀਆਂ ਹੀ ਸੇਵਾਵਾਂ ਨੂੰ ਰੇਟ-ਲਿਮਿਟ ਕਰ ਰਹੇ ਸੀ
Mythex ਦੀ API ਇੱਕ ਨੈੱਟਵਰਕ ਪਤੇ ਤੋਂ ਪ੍ਰਤੀ ਮਿੰਟ 300 ਬੇਨਤੀਆਂ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ। ਇਹ ਹੱਦ ਸਾਨੂੰ ਇੱਕ ਵਿਅਕਤੀ ਜਾਂ ਸਕ੍ਰਿਪਟ ਦੇ API ’ਤੇ ਹਮਲਾ ਕਰਨ ਤੋਂ ਬਚਾਉਣ ਲਈ ਹੈ। ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਇਹ ਸਾਡੀਆਂ ਹੀ ਸੇਵਾਵਾਂ ਨੂੰ ਰੋਕਣ ਲੱਗ ਪਈ, ਯਾਨੀ ਸਾਡੇ ਐਜ ਦਾ ਉਹ ਹਿੱਸਾ ਜੋ ਪ੍ਰਕਾਸ਼ਿਤ ਐਪਾਂ ਪਰੋਸਦਾ ਹੈ, ਅਤੇ ਉਹ ਸੇਵਾ ਜੋ AI ਏਜੰਟ ਚਲਾਉਂਦੀ ਹੈ, ਕਿਉਂਕਿ ਹਰ ਇੱਕ ਸਿਰਫ਼ ਕੁਝ ਕੁ ਪਤਿਆਂ ਤੋਂ API ਤੱਕ ਪਹੁੰਚਦਾ ਹੈ। ਹੁਣ ਅੰਦਰੂਨੀ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਰੱਖਣ ਵਾਲੀਆਂ ਬੇਨਤੀਆਂ ਨੂੰ ਛੋਟ ਹੈ, ਅਤੇ ਬਾਕੀ ਸਭ ਪਹਿਲਾਂ ਵਾਂਗ ਹੀ ਗਿਣਿਆ ਜਾਂਦਾ ਹੈ।
ਲੱਛਣ
API ਨੇ ਸਾਡੀਆਂ ਆਪਣੀਆਂ ਕੁਝ ਅੰਦਰੂਨੀ ਕਾਲਾਂ ਦਾ ਜਵਾਬ 429 Too Many Requests ਨਾਲ ਦੇਣਾ ਸ਼ੁਰੂ ਕਰ ਦਿੱਤਾ। ਤਿੰਨ ਕਿਸਮਾਂ ਦੀਆਂ ਕਾਲਾਂ ਪ੍ਰਭਾਵਿਤ ਹੋਈਆਂ, ਅਤੇ ਹਰ ਇੱਕ ਦਾ Mythex ਵਰਤਣ ਵਾਲੇ ਕਿਸੇ ਵਿਅਕਤੀ ਲਈ ਮਤਲਬ ਹੈ:
- ਇਹ ਲੱਭਣਾ ਕਿ ਕਿਹੜੀ ਐਪ ਕਸਟਮ ਡੋਮੇਨ ’ਤੇ ਹੈ। ਜਦੋਂ ਵਿਜ਼ਿਟਰ ਆਪਣੇ ਡੋਮੇਨ ’ਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਐਪ ਖੋਲ੍ਹਦਾ ਹੈ, ਸਾਡਾ ਐਜ API ਤੋਂ ਪੁੱਛਦਾ ਹੈ ਕਿ ਉਹ ਸਾਈਟ ਕਿੱਥੇ ਹੈ। ਇੱਥੇ 429 ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕੋਈ ਵਿਜ਼ਿਟਰ ਸਾਈਟ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚ ਸਕਦਾ।
- ਚੱਲ ਰਹੇ ਏਜੰਟ ਟਰਨ ਨੂੰ ਸੰਭਾਲਣਾ। ਜਦੋਂ ਏਜੰਟ ਕੰਮ ਕਰਦਾ ਹੈ, ਉਸਦੀ ਤਰੱਕੀ ਅੱਗੇ ਵਧਦੇ ਹੋਏ ਸੰਭਾਲੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਜੋ ਜਵਾਬ ਰਿਫਰੈਸ਼ ਜਾਂ ਟੁੱਟੇ ਕਨੈਕਸ਼ਨ ਤੋਂ ਬਚ ਸਕੇ। ਇੱਥੇ 429 ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤਰੱਕੀ ਸੰਭਾਲੀ ਨਹੀਂ ਗਈ।
- ਪ੍ਰੀਵਿਊ ਤੱਕ ਪਹੁੰਚ ਦੀ ਜਾਂਚ। ਤੁਸੀਂ ਜੋ ਐਪ ਬਣਾ ਰਹੇ ਹੋ ਉਸਦਾ ਪ੍ਰੀਵਿਊ ਗੇਟ ਕੀਤਾ ਹੋਇਆ ਹੈ, ਅਤੇ ਗੇਟ API ਤੋਂ ਪੁੱਛਦਾ ਹੈ। ਇੱਥੇ 429 ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਪ੍ਰੀਵਿਊ ਨਹੀਂ ਖੁੱਲ੍ਹੇਗਾ।
ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਕਾਲ ਕਿਸੇ ਵਿਅਕਤੀ ਵੱਲੋਂ API ਨੂੰ ਨਹੀਂ ਸੀ। ਸਭ ਸਾਡੇ ਵੱਲੋਂ ਸੀ।
ਇਹ ਕਿਉਂ ਹੋਇਆ
ਪ੍ਰਤੀ-ਪਤਾ ਰੇਟ ਲਿਮਿਟ ਇੱਕ ਧਾਰਨਾ ਬਣਾਉਂਦੀ ਹੈ: ਇੱਕ ਪਤਾ ਲਗਭਗ ਇੱਕ ਕਾਲਰ ਹੈ। ਲੋਕਾਂ ਲਈ ਇਹ ਕਾਫ਼ੀ ਨੇੜੇ ਹੈ। ਸਾਡੇ ਆਪਣੇ ਢਾਂਚੇ ਲਈ ਇਹ ਬੁਰੀ ਤਰ੍ਹਾਂ ਗਲਤ ਹੈ।
- ਐਜ ਸੇਵਾ ਜੋ ਪ੍ਰਕਾਸ਼ਿਤ ਐਪਾਂ ਅਤੇ ਪ੍ਰੀਵਿਊ ਪਰੋਸਦੀ ਹੈ, API ਤੱਕ ਕੁਝ ਸਾਂਝੇ ਬਾਹਰੀ ਪਤਿਆਂ ਤੋਂ ਪਹੁੰਚਦੀ ਹੈ। ਹਰ ਪ੍ਰਕਾਸ਼ਿਤ ਐਪ ਦਾ ਹਰ ਵਿਜ਼ਿਟਰ ਅਤੇ ਹਰ ਪ੍ਰੀਵਿਊ ਜਾਂਚ ਉਹਨਾਂ ਕੁਝ ਪਤਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਤੋਂ ਆਉਂਦੀ ਦਿਸਦੀ ਹੈ।
- ਔਰਕੇਸਟਰੇਟਰ, ਯਾਨੀ ਉਹ ਸੇਵਾ ਜੋ ਏਜੰਟ ਟਰਨ ਚਲਾਉਂਦੀ ਹੈ, API ਤੱਕ ਇੱਕ ਕੰਟੇਨਰ ਪਤੇ ਤੋਂ ਪਹੁੰਚਦੀ ਹੈ। ਹਰ ਚੱਲ ਰਿਹਾ ਟਰਨ, ਹਰ ਯੂਜ਼ਰ ਲਈ, ਇਹੀ ਪਤਾ ਵਰਤਦਾ ਹੈ।
ਇਸ ਲਈ ਇੱਕ ਵਿਅਕਤੀ ਲਈ ਬਣਿਆ ਬਜਟ ਇੱਕ ਪੂਰੀ ਸੇਵਾ ਦੇ ਸਾਰੇ ਟ੍ਰੈਫਿਕ ਵਿੱਚ ਵੰਡਿਆ ਜਾ ਰਿਹਾ ਸੀ। ਉਹਨਾਂ ਸੇਵਾਵਾਂ ਨੇ ਆਪਸ ਵਿੱਚ ਇਹ ਖਤਮ ਕਰ ਦਿੱਤਾ, ਅਤੇ ਲਿਮਿਟਰ ਨੇ ਉਹੀ ਕੀਤਾ ਜੋ ਉਸਨੂੰ ਕਿਹਾ ਗਿਆ ਸੀ: ਉਹਨਾਂ ਨੂੰ ਰੋਕ ਦਿੱਤਾ।
ਫਿਕਸ
ਸਾਡੀਆਂ ਆਪਣੀਆਂ ਸੇਵਾਵਾਂ ਪਹਿਲਾਂ ਹੀ ਸਾਬਤ ਕਰਦੀਆਂ ਹਨ ਕਿ ਉਹ ਕੌਣ ਹਨ। ਹਰ ਅੰਦਰੂਨੀ ਕਾਲ ਇੱਕ ਅੰਦਰੂਨੀ ਟੋਕਨ ਰੱਖਦੀ ਹੈ, ਅਤੇ API ਦੇ ਅੰਦਰੂਨੀ ਹਿੱਸੇ ਹੇਠਲਾ ਹਰ ਰੂਟ ਕੁਝ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਉਸ ਟੋਕਨ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ।
ਰੇਟ ਲਿਮਿਟਰ ਹੁਣ ਉਹੀ ਜਾਂਚ ਵਰਤਦਾ ਹੈ। ਜਿਸ ਬੇਨਤੀ ਦਾ ਟੋਕਨ ਅੰਦਰੂਨੀ ਟੋਕਨ ਨਾਲ ਮਿਲਦਾ ਹੈ, ਉਹ ਇੱਕ ਅਲਾਊ ਸੂਚੀ ’ਤੇ ਹੈ ਅਤੇ ਪ੍ਰਤੀ-ਪਤਾ ਬਜਟ ਵਿੱਚ ਨਹੀਂ ਗਿਣੀ ਜਾਂਦੀ। ਬਾਕੀ ਸਭ ਪਹਿਲਾਂ ਵਾਂਗ ਗਿਣਿਆ ਜਾਂਦਾ ਹੈ: ਪ੍ਰਤੀ ਪਤਾ ਪ੍ਰਤੀ ਮਿੰਟ 300 ਬੇਨਤੀਆਂ।
ਦੋ ਵੇਰਵਿਆਂ ਨੇ ਇਸਨੂੰ ਇੱਕ ਮੋਰੀ ਬਣਨ ਤੋਂ ਰੋਕਿਆ:
- ਗਲਤ ਟੋਕਨ ਨੂੰ ਕੋਈ ਛੋਟ ਨਹੀਂ। ਅਲਾਊ ਸੂਚੀ ਸਿਰਫ਼ ਅਸਲੀ ਅੰਦਰੂਨੀ ਟੋਕਨ ਨਾਲ ਮਿਲਦੀ ਹੈ। ਬਣਾਏ ਟੋਕਨ ਵਾਲੀ ਬੇਨਤੀ ਗਿਣੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਬਾਕੀਆਂ ਵਾਂਗ ਰੋਕੀ ਜਾਂਦੀ ਹੈ, ਅਤੇ ਅੰਦਰੂਨੀ ਰੂਟ ਫਿਰ ਵੀ ਇਸਨੂੰ
401 Unauthorizedਨਾਲ ਰੱਦ ਕਰਦੇ ਹਨ। - ਹੱਦ ਖੁਦ ਨਹੀਂ ਬਦਲੀ। ਜਗ੍ਹਾ ਬਣਾਉਣ ਲਈ ਅਸੀਂ ਨੰਬਰ ਨਹੀਂ ਵਧਾਇਆ। ਵਧਾਉਣ ਨਾਲ ਸਮੱਸਿਆ ਕੁਝ ਸਮੇਂ ਲਈ ਲੁਕ ਜਾਂਦੀ, ਟ੍ਰੈਫਿਕ ਵਧਣ ’ਤੇ ਫਿਰ ਫੇਲ੍ਹ ਹੁੰਦੀ, ਅਤੇ ਉਸ ਕੇਸ ਲਈ ਸੁਰੱਖਿਆ ਕਮਜ਼ੋਰ ਕਰਦੀ ਜਿਸ ਲਈ ਲਿਮਿਟ ਬਣੀ ਹੈ।
ਅਸੀਂ ਲਿਮਿਟਰ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਇੱਕ ਛੋਟੇ ਫੰਕਸ਼ਨ ਵਿੱਚ ਰੱਖੀਆਂ ਅਤੇ ਉਸ ਵਿਰੁੱਧ ਟੈਸਟ ਲਿਖੇ। ਇੱਕ ਅੰਦਰੂਨੀ ਟੋਕਨ ਨਾਲ 20 ਬੇਨਤੀਆਂ ਇੱਕ ਲਿਮਿਟਰ ਨੂੰ ਭੇਜਦਾ ਹੈ ਜੋ 5 ਦੀ ਇਜਾਜ਼ਤ ਲਈ ਸੈੱਟ ਹੈ, ਅਤੇ ਉਮੀਦ ਕਰਦਾ ਹੈ ਕਿ ਸਾਰੀਆਂ 20 ਸਫਲ ਹੋਣ। ਇੱਕ ਹੋਰ ਇੱਕ ਪਤੇ ਤੋਂ ਆਮ ਬੇਨਤੀਆਂ ਭੇਜਦਾ ਹੈ ਅਤੇ ਉਮੀਦ ਕਰਦਾ ਹੈ ਕਿ ਪਹਿਲੀਆਂ ਪੰਜ ਸਫਲ ਹੋਣ ਅਤੇ ਉਸ ਤੋਂ ਬਾਅਦ ਵਾਲੀਆਂ ਰੱਦ। ਤੀਜਾ ਗਲਤ ਟੋਕਨ ਵਾਲੀਆਂ ਬੇਨਤੀਆਂ ਭੇਜਦਾ ਹੈ ਅਤੇ ਉਮੀਦ ਕਰਦਾ ਹੈ ਕਿ ਉਹ ਉਸੇ ਤਰ੍ਹਾਂ ਰੱਦ ਹੋਣ।
ਅਸੀਂ ਇਸ ਤੋਂ ਕੀ ਸਿੱਖਿਆ
- ਹੱਦਾਂ ਧਾਰਨਾਵਾਂ ਰੱਖਦੀਆਂ ਹਨ। “ਇੱਕ ਪਤਾ, ਇੱਕ ਕਾਲਰ” ਪ੍ਰਤੀ-ਪਤਾ ਹੱਦ ਵਿੱਚ ਬਣੀ ਹੋਈ ਹੈ। ਇਹ ਸੱਚ ਰਹਿਣਾ ਬੰਦ ਕਰ ਦਿੰਦੀ ਹੈ ਜਿਸ ਪਲ ਤੁਹਾਡੀਆਂ ਆਪਣੀਆਂ ਸੇਵਾਵਾਂ ਸਾਂਝੇ ਪਤਿਆਂ ਪਿੱਛੇ ਹੋਣ, ਅਤੇ ਬਹੁਤ ਸਾਰੀਆਂ ਹੁੰਦੀਆਂ ਹਨ: ਲੋਡ ਬੈਲੈਂਸਰ, ਐਜ ਨੈੱਟਵਰਕ, ਕੰਟੇਨਰ, ਦਫ਼ਤਰੀ ਨੈੱਟਵਰਕ।
- ਆਪਣਾ ਟ੍ਰੈਫਿਕ ਪਛਾਣ ਨਾਲ ਵੱਖ ਕਰੋ, ਪਤੇ ਨਾਲ ਨਹੀਂ। ਪਤੇ ਇਹ ਦੱਸਦੇ ਹਨ ਕਿ ਟ੍ਰੈਫਿਕ ਕਿਵੇਂ ਪਹੁੰਚਿਆ, ਨਾ ਕਿ ਕਿਸਨੇ ਭੇਜਿਆ। ਸਾਡੇ ਕੋਲ ਪਹਿਲਾਂ ਹੀ ਇੱਕ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਸੀ ਜੋ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਕਾਲ ਸਾਡੀ ਹੈ; ਲਿਮਿਟਰ ਉਸਨੂੰ ਨਹੀਂ ਵੇਖ ਰਿਹਾ ਸੀ।
- ਨੰਬਰ ਵਧਾ ਕੇ ਠੀਕ ਨਾ ਕਰੋ। ਵੱਡੀ ਹੱਦ ਨਾਲ 429 ਕੁਝ ਸਮੇਂ ਲਈ ਗਾਇਬ ਹੋ ਜਾਂਦੇ, ਘੱਟ ਸੁਰੱਖਿਆ ਦਿੰਦੇ, ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਫਿਰ ਫੇਲ੍ਹ ਹੁੰਦੇ।
- ਵੇਖੋ ਕਿ ਕੌਣ ਰੋਕਿਆ ਜਾ ਰਿਹਾ ਹੈ। ਜੋ 429 ਤੁਹਾਡੀ ਆਪਣੀ ਸੇਵਾ ’ਤੇ ਪੈਂਦਾ ਹੈ, ਉਹ ਤੁਹਾਡੀਆਂ ਹੱਦਾਂ ਬਾਰੇ ਬੱਗ ਰਿਪੋਰਟ ਹੈ, ਨਾ ਕਿ ਲਿਮਿਟਰ ਦੇ ਠੀਕ ਕੰਮ ਕਰਨ ਦਾ ਸੰਕੇਤ।
ਜੇ ਤੁਸੀਂ Mythex ’ਤੇ ਬਣਾਉਂਦੇ ਹੋ ਤਾਂ ਇਸਦਾ ਕੀ ਮਤਲਬ ਹੈ
ਤੁਹਾਡੇ ਪਾਸੇ ਬਦਲਣ ਲਈ ਕੁਝ ਨਹੀਂ। ਕਸਟਮ ਡੋਮੇਨਾਂ ’ਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਐਪਾਂ, ਏਜੰਟ ਟਰਨ ਅਤੇ ਪ੍ਰੀਵਿਊ ਹੁਣ ਇਸ ’ਤੇ ਨਿਰਭਰ ਨਹੀਂ ਕਰਦੇ ਕਿ Mythex ਦਾ ਬਾਕੀ ਹਿੱਸਾ ਕਿੰਨਾ ਵਿਅਸਤ ਹੈ। ਤੁਹਾਡੀ ਆਪਣੀ ਐਪ ਦਾ ਟ੍ਰੈਫਿਕ ਤੁਹਾਡੀ ਆਪਣੀ ਗੱਲ ਹੈ: ਇੱਥੇ ਦੱਸੀ ਹੱਦ ਸਾਡੀ API ’ਤੇ ਹੈ, ਤੁਹਾਡੀਆਂ ਪ੍ਰਕਾਸ਼ਿਤ ਐਪਾਂ ’ਤੇ ਨਹੀਂ।
ਜੇ ਤੁਸੀਂ ਆਪਣਾ ਬੈਕਐਂਡ ਚਲਾਉਂਦੇ ਹੋ, ਤਾਂ ਉਹੀ ਜਾਲ ਕਿਸੇ ਵੀ ਰੇਟ ਲਿਮਿਟ ’ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਜੋੜਦੇ ਹੋ। ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸਾਡੀਆਂ ਗਾਈਡਾਂ API ਕੀ ਹੈ ਅਤੇ AI ਨਾਲ ਬਣੀਆਂ ਐਪਾਂ ਲਈ ਸੁਰੱਖਿਆ ਚੈੱਕਲਿਸਟ ਚੰਗੀਆਂ ਹਨ। ਸਾਡੇ ਆਪਣੇ ਢਾਂਚੇ ਦੇ ਆਪਣੇ ਰਾਹ ਵਿੱਚ ਆਉਣ ਦੇ ਹੋਰ ਮਾਮਲੇ ਲਈ, ਅਸੀਂ ਡਿਪਲਾਇ ਨੂੰ ਜ਼ੀਰੋ 502 ਤੱਕ ਕਿਵੇਂ ਲਿਆਂਦਾ ਵੇਖੋ।