Пример конфига:
port: 8082 # порт, на котором будет развернут балансер, по дефолту 8080
services: # список сервисов, которые надо балансировать
- healthUrl: http://en.wikipedia.org/health # url, по которому балансер будет проверять, живой ли сервис (из этого же url-а берутся значения для host и port)
failureThreshold: 3 # количество неуспешных ответов, после которого сервис выводится из балансировки, по дефолту 3
successThreshold: 3 # количество успешных ответов от сервиса, после которого он опять вводится в балансировку, по дефолту 3
- healthUrl: http://google.com/health
failureThreshold: 3
successThreshold: 3
timeout: 500 # в ms, превышение таймаута считается как fail для сервиса
delay: 5000 # с какой периодичностью опрашивать сервисы, живы ли они, в ms, по дефолту 3000
threadPoolSize: 4 # размер пула балансера, по дефолту 6
extraCodesToFailOn: # по дефолту будет считаться, что сервис не работает, только если он вернул код из 5xx, здесь можно дописать доп кода, по которым сервис так же должен считаться упавшим
- 429
Путь до конфига берется из переменной окружения BALANCER_CONFIG
Делались с конфигом, где все пороги = 1
Посылает запросы по очереди на каждый из сервисов в списке. Если один из сервисов не работает, он скипается до тех пор, пока не заработает снова.
Если ни один из сервисов не работает, то запросы все равно будут рассылаться подряд на сервисы из списка, пока хотя бы один из них не заработает
- Когда оба сервиса живы, запросы рассылаются поочередно на каждый в списке
- Когда один из сервисов лежит, запросы рассылаются на живой из них: здесь мастер лежит, все запросы уходят на живую реплику
mvn clean install # соберет jar и скопипастирует его в docker/
docker-compose up