Série Java Networking · 01
O que tem por baixo de uma chamada REST
restTemplate.getForObject("http://10.0.0.7:80/pedidos", Pedido[].class);01 / 07
No código, só uma URL
Você escreve uma linha com RestTemplate e pronto. Mas essa URL carrega tudo o que a rede precisa saber: em qual máquina chegar e qual programa vai atender.
Use ← e → pra trocar de cena, espaço pra pausar.
Pra fixar
- IP: em qual máquina chegar.
- Porta: qual programa, dentro da máquina, atende.
- Socket: a ponta da conexão, um IP + uma porta de cada lado.
- connectTimeout: quanto esperar pelo handshake. readTimeout: quanto esperar pela resposta, com a conexão já aberta.
- Timeout no cliente não cancela nada no servidor: o trabalho continua lá do outro lado.
- Pool e keep-alive economizam o handshake reaproveitando sockets abertos.
Os mesmos dois tempos, sem o framework
try (var socket = new Socket()) {
socket.connect(new InetSocketAddress("10.0.0.7", 80), 2_000); // connectTimeout
socket.setSoTimeout(5_000); // readTimeout
// ... write(request), read(response)
}
// RestTemplate: same two timeouts
var factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(Duration.ofSeconds(2));
factory.setReadTimeout(Duration.ofSeconds(5));
Caramelo