我已经按照这里的示例中所述配置了TcpClient。我试图使以下代码在服务器意外关闭连接的情况下具有弹性:
TcpClient tcpClient = getTcpClient();
public Mono<String> sendMessage(Mono<bytes[]> request) {
Connection connection = getConnectionFromPool(tcpClient);
return connection
.outbound()
.sendByteArray(request)
.then()
.then(connection.inbound().receive().asString().as(Mono::from));
}
在这种情况下,我希望方法“getConnectionFromPool”能够从池中检索连接,或者如果没有可用的连接,则打开一个新连接。
注意到后。connect()最终服从于ConnectionProvider。acquire(),我尝试使用tcpClient。connect(),但有必要更改方法返回类型,如下所示:
public Mono<Mono<String>> sendMessage1(Mono<String> request) {
return this.tcpClient
.connect()
.map(connection ->
connection
.outbound()
.sendByteArray(request.map(String::getBytes))
.then()
.then(connection.inbound().receive().asString().as(Mono::from))
);
}
显然这是不可取的。如何直接从池中获取Connection实例?我是否缺少一个简单的Mono运算符,或者我是否错误地使用了TcpClient API?
非常感谢任何帮助。
用平面地图代替地图怎么样?
public Mono<String> sendMessage1(Mono<String> request) {
return this.tcpClient
.connect()
.flatMap(connection ->
connection
.outbound()
.sendByteArray(request.map(String::getBytes))
.then()
.then(connection.inbound().receive().asString().as(Mono::from))
);
}
当我使用带有固定连接提供者的TCP客户端时,我不能重用连接。 他们使连接超过maxConnection变量。 这是我写的。 即使我使用10个maxConnection,比如“ConnectionProvider”。固定(“测试”,10)”,有22个空闲连接。天啊 //NettyClient.java //NettyClientTest。Java语言 14:55:27.397[reactor-tcp
我正在尝试在建立Tcp连接后建立Udp连接。所有连接状态和控制都通过Tcp进行,但我希望客户端和服务器也能够通过Udp进行通信。这是我的问题。 服务器将有许多客户端在单独的线程上连接到它。我让它 0 在仅绑定 Tcp 的情况下工作正常,但我想使用 Udp。由于 Udp 打孔,我很难侦听 Udp 上的特定endpoint,因为endpoint在与 NAT 设备通信时可能会发生变化。 因此,简单地提出
Tomcat在使用后不释放连接的原因可能是什么? 这是我的配置
在我的程序中,我正在访问wep api。最多可以有7个不同的线程访问web api的不同服务器。每个线程负责一个服务器,每个服务器速率限制每个线程。每个线程更新相同的mysql数据库。线程数保持不变。 在我的示例中,是否需要连接池?我不应该只打开7个不同的连接,这些连接将在程序的生命周期中打开吗?
我正在重构一个最初设计于20世纪90年代中期的遗留系统。在那些日子里,JDBC连接是一种稀缺资源,没有可靠的连接池实现,因此连接被保持得尽可能长。这导致以下结构: 这只是一个例子来说明这种结构中的数据库连接 > 提前打开 会长期开放 传递给所有必须访问数据库的人 现在,在重构过程中,我想删除这种操作模式。考虑到连池和操作尽可能无状态,我可以想象删除数据库连接的每一次传递,并在我需要的时候简单地(从
我使用的是spring-webflux-5.2.8。释放,此操作“正常”: 返回错误时,不会出现任何问题,因为连接已被破坏,并且不会放回连接池: 调试r.n.resources。PooledConnectionProvider-[id:0xa23f78ad,L:/127.0.0.1:7524!R:localhost/127.0.0.1:8443]通道已关闭,现在有0个活动连接和0个非活动连接 但当