Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.7k views
in Technique[技术] by (71.8m points)

spring boot - WebFlux – Back-pressure – Limit # of concurrent requests

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...