Concurrent Hashmap не может найти мой ключ, хотя он присутствует во время большой нагрузки - PullRequest
0 голосов
/ 19 сентября 2019

Я имею дело с кодом, в котором все мои клиентские идентификаторы и секреты помещены в параллельную Hashmap.

Код отлично работает в почтальоне при запуске на итерационном тесте 1000, но не проходит во время нашего нагрузочного тестас около 5лах нечетных транзакций.Хотя частота отказов очень мала, т. Е. 10 транзакций из 500 000 терпят неудачу.мы нацелены на сценарий сбоя 0.

Я делаю повторную попытку дважды, хотя 90% транзакций проходят, когда я делаю 1-ю повторную попытку, то есть снова смотрю в хэш-карту, а остальные проходят, когда я делаю2-я повторная попытка, при которой я воссоздаю запрос и снова нажимаю на vip, который никогда не завершается неудачей.

ниже приведен код для размещения и получения hasmap:

Для размещения:

public void addToCache(ClientSecret clientSecret){
        hmap.put(clientSecret.getClient(), clientSecret.getSecret());
        LOG.info("Client "+ clientSecret.getClient() + "is loaded successfully");
        return;
    }

Для получения:

public String validateClientAndSecret(ClientSecret clientSecret) throws IOException, JSONException {

    String clientSecretFromRedis= hmap.get(clientSecret.getClient());
    return clientSecretFromRedis;
}

Почему я сталкиваюсь с этой проблемой?

...