1. Introdução
Com o desenvolvimento de sistemas corporativos, os aplicativos adotam principalmente estruturas distribuídas, que dependem fortemente da estabilidade da rede. No entanto, devido à instabilidade inerente da rede, é necessário considerar como garantir a robustez do aplicativo no caso de instabilidade da rede durante o desenvolvimento do sistema. Definir o tempo limite da rede é um dos meios para garantir a robustez do aplicativo. Depois de definir a configuração de tempo limite da rede, a solicitação será forçada a terminar se não concluir o tempo definido, garantindo que o programa não tenha bloqueio de encadeamento ilimitado, melhorando efetivamente a disponibilidade do aplicativo.
Não vou dizer muito abaixo, vamos dar uma olhada na introdução detalhada juntos.
2. Comparação entre o tempo limite não definido e a configuração de tempo limite
1. Legenda da solicitação de rede:
Caso de tempo limite da solicitação de rede
2. Depois de definir o tempo limite, solicite a lenda:
Caso de tempo limite da solicitação de rede - Defina o tempo limite
3. Configurações comuns de tempo limite da rede
1. Configuração do tempo limite httpclient (feijão da mola)
Configuração
<bean id = "multithreadEdHttpConnectionManager"> <propriedade name = "params"> <bean> <propriedade name = "maxtotalConnections" value = "$ {maxtotalConnections: 300}" /> <nome da propriedade = "defaultMaxConnectionSperHost" »}> {defesa milissegundos. -> <propriedade name = "ConnectionTimeout" value = "$ {ConnectTimeout: 10000}" /> <!-Timeout de soquete, milissegundos. -> <Property name = "sotimeout" value = "$ {readTimeout: 600000}"/> <propriedade name = "estalecheckingEnabled" value = "$ {stalecheckingEnabled: true}"/> </bean> </oither> </s Bean> <bean id = "htttpclient" bean = "multithreadedHttpConnectionManager"/> </construtor-arg> </i bean>Cenário de uso de HttpinVoker
Configure httpinvokerRequestExecutor, substitua o simplesHttpinVokerRequestExecutor usado por padrão no httpinvokerproxyfactoryBean e configure o tempo limite da rede. Consulte "Configuração".
<bean id = "httpinvokerRequestExecutor"> <Construtor-arg> <ref Bean = "httpclient" /> < /construtor-arg> < /bean> <bEan id = "xxxxxxxxxxxxxserverice"> <nome da propriedade "") value = "com.xxxxService" /> <propriedade name = "httpinvokerRequestExecutor" ref = "httpinvokerRequestExecutor" /> </shean>
2.
Amostra
Requestconfig config = requestconfig.custom () .SetSockettimeout (1*1000) // Tempo limite do soquete, milissegundos. .SetConnectionRequestTimeout (1*1000) // Ao usar o pool de conexão para gerenciar a conexão, obtenha o tempo de tempo limite da conexão, milissegundos do pool de conexão. .SetConnectTimeout (5*1000) // Tempo limite do estabelecimento de conexão, milissegundos. .construir(); ClosableHttpClient httpClient = httpClients.custom () .SetDefaultReCeStConfig (config) // .build (); ClosableHttpResponse httpResponse = httpclient.execute (httpget); // Execute a solicitação
3. Configurações de tempo limite do correio
Projetos desenvolvidos com base na estrutura da primavera podem ser usados com muita facilidade
org.springframework.mail.javamail.javamailsenderImpl implementa lembretes por e -mail e outras funções.
Configuração
<bean id = "Mailsender" p: host = "$ {MailSender.host}" p: userName = "$ {MailSender.username}" p: senha = "$ {MailSender.password}"> <nome da propriedade "" JavamailProperties "> <Props> <appy =" </prop> <prop key =Descrição do JavamailProperties
Nota: A lista de nomes do parâmetro da propriedade pode consultar a documentação da API do Javamail.
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.
consulte