Backpressure RSocket如何向多个客户端发出租约?

Backpressure RSocket如何向多个客户端发出租约?,backpressure,rsocket,Backpressure,Rsocket,我可以创建一个服务器租赁给单个客户机,如下所示: @Slf4j 公共类租赁服务器{ 私有静态最终字符串服务器\u TAG=“SERVER”; 公共静态void main(字符串[]args)引发InterruptedException{ //以流量表示的传入消息的队列 //想象一下,推送的每个fireAndForget都是由一个工人处理的 int队列容量=50; BlockingQueue messagesQueue=新阵列BlockingQueue(队列容量); //模拟处理队列中数据的工作进

我可以创建一个服务器租赁给单个客户机,如下所示:

@Slf4j
公共类租赁服务器{
私有静态最终字符串服务器\u TAG=“SERVER”;
公共静态void main(字符串[]args)引发InterruptedException{
//以流量表示的传入消息的队列
//想象一下,推送的每个fireAndForget都是由一个工人处理的
int队列容量=50;
BlockingQueue messagesQueue=新阵列BlockingQueue(队列容量);
//模拟处理队列中数据的工作进程
线程工作线程=
新线程(
() -> {
试一试{
而(!Thread.currentThread().isInterrupted()){
String message=messagesque.take();
System.out.println(“消费消息:+消息”);
Thread.sleep(100000);//模拟处理
}
}捕捉(中断异常e){
抛出新的运行时异常(e);
}
});
workerThread.start();
CloseableChannel server=getFireAndForgetServer(messagesQueue,workerThread);
时间单位。分钟。睡眠(10);
dispose();
}
私有静态可关闭通道getFireAndForgetServer(阻塞队列消息队列,线程工作线程){
可关闭通道服务器=
RSocketServer.create((安装程序,sendingSocket)->
Mono.just(新的RSocket(){
@凌驾
公共单声道fireAndForget(有效载荷){
//添加元素。如果溢出错误并终止执行
//特别是为了表明租约可以限制fnf请求的速率
//那个例子
试一试{
if(!messagesQueue.offer(payload.getDataUtf8())){
System.out.println(“队列已溢出。正在终止执行”);
sendingSocket.dispose();
workerThread.interrupt();
}
}最后{
有效载荷。释放();
}
返回Mono.empty();
}
}))
.lease(()->Leases.create().sender(新的LeaseCalculator(服务器标签,消息队列)))
.bindNow(TcpServerTransport.create(“localhost”,7000));
返回服务器;
}
}
但是,如何向连接到该服务器的多个客户端发出租约

否则,我的队列将被多个客户端多次写入,导致服务溢出

我在公开文件和资料中找不到细节

非常感谢你的帮助