#spring-boot #kubernetes #spring-cloud-feign #feign
#весенняя загрузка #kubernetes #весенняя загрузка в облаке-feign #feign
Вопрос:
Я использую feign, через spring feign, и балансировка нагрузки, похоже, отключена. У меня есть один экземпляр службы A и 2 экземпляра службы B. Служба A вызывает службу B через притворного клиента. Я отобразил входящие запросы в службе B, и все они, похоже, попадают на один и тот же узел, а через некоторое время переключаются на другой узел, и все они снова попадают на этот узел. Не совсем то, чего я хочу. Я использую kubernetes DNS для получения узла. Я упускаю какую-то часть головоломки? получает ли feign ip-адрес и использует ли его какое-то время?
Я использую последнюю версию spring cloud, но использую httpclient вместо стандартного клиента.
Моя весенняя симулированная аннотация выглядит следующим образом:
@FeignClient(name = "serviceB", url="http://serviceb:8080")
где serviceb — это имя службы в kubernetes DNS.
Ответ №1:
Вы имеете в виду модуль по узлу?
Чтобы проверить свою теорию, вы можете постоянно вызывать serviceb и резко запускать один из модулей и смотреть, получает ли другой модуль запрос!
k8s, похоже, следует случайному алгоритму балансировки нагрузки — так что есть вероятность, что он может отправить запрос в тот же модуль, который я также видел, когда запросов недостаточно. Когда вы можете отправлять несколько одновременных запросов непрерывно в течение определенного времени, я видел, что запросы распределяются по всем модулям.