We have an applications that reads data from a database (using a reactive driver), transform it and pushes it to Elastic Search (ES) using ReactiveElasticsearchClient in bulks.
What is happening is that this particular ES does not support more than 200 on-going bulk-requests. As the call is made async, I need to control that not more than 200 requests are made without receiving the async response.
The flux/pipe is something like:
db-read→transform-to-object→bulk-collect→call-es(in flatmap)→subscribe es response handler.
I tried to set parameters in the underlying tcppool (maxconnections) and it works but when the maxconnections are reached the flux/pipe fails.
Is there any way to limit active connections (awaiting response) applying back-pressure or any other way to limit this number?
The ES client uses the WebClient to execute async request to ES
Thanks very much.
Fernando.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…