Azure / azure-libraries-for-java

Azure Management Libraries for Java
https://docs.microsoft.com/en-us/java/azure/
MIT License
94 stars 98 forks source link

throttle base on subscriptionId and request method #1252

Closed weidongxu-microsoft closed 4 years ago

weidongxu-microsoft commented 4 years ago

fix https://github.com/Azure/azure-libraries-for-java/issues/1251

ratelimit could have different limit on write/read/delete https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/request-limits-and-throttling

Hence it likely helps to separate them (to avoid the case that a throttle write blocks a subsequent delete or read).

Pending mock server test.

weidongxu-microsoft commented 4 years ago

The PR should work for compute RP as well. They also have different scope for PUT/DELETE

[main] INFO com.microsoft.azure.management.compute.Disks createOrUpdate - x-ms-ratelimit-remaining-resource: Microsoft.Compute/CreateUpdateDisks3Min;999,Microsoft.Compute/CreateUpdateDisks30Min;7999

[main] INFO com.microsoft.azure.management.compute.Disks delete - x-ms-ratelimit-remaining-resource: Microsoft.Compute/DeleteDisks3Min;999,Microsoft.Compute/DeleteDisks30Min;7999