Atuador de mola é um módulo integrado de botão de mola para monitoramento de aplicativos. Ele fornece suporte para o monitoramento do servidor, permitindo que obtenhamos mais intuitivamente a configuração do aplicativo, variáveis de ambiente, relatórios de configuração automatizados etc. carregados no aplicativo.
Usando o attuador de primavera
1. Introduzir dependências do Maven
<!-Módulo de Monitoramento e Gerenciamento-> <Ependency> <PuerpId> org.springframework.boot </frugiD> <ArtifactId> Spring-Boot-Starter-Actuator </ArtifactId> </pendence>
Após a introdução de dependências, inicie o projeto.
O URL que precisamos será impresso quando o projeto começar
2018-03-26 23: 19: 00.169 Informações 6148 --- [Main] Osbaemvc.endpoIntHandlerMapping: mapeado "{[/env/{name:.*»*se aplica.methods=GETATOR.PRODUCES=Pplication/VND.Spring-Boot.Actuator.Troduces=Pplication/VND.Spring-Boot.Atuator java.lang.object org.springframework.boot.actuate.endpoint.mvc.environmentMvcendPoint.value (java.lang.string)
2018-03-26 23: 19: 00.169 Informações 6148 --- [Main] Osbaemvc.endpoInthandlermapping: mapeado "{[/Env || /env.json ].methods=GETORTORENTO.PRODUCES=Pplication/VND.Spring-Boot.actuator.Tuator] java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.170 INFO 6148 --- [PRINCIPAL] Osbaemvc.endpoInthandlermapping: mapeado "{[/rastreio || /trace.json ].methods=Get ].produces=pplication/Vnd.spring-Boot.Atuator] java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.170 INFO 6148 --- [PRINCIPAL] Osbaemvc.endpoInthandlermapping: mapeado "{[/dump || /dump.json ].methods=Get ].produces=pplication/vnd.spring-Boot.actuator] java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23:19:00.171 INFO 6148 --- [ main] osbaemvc.EndpointHandlerMapping : Mapped "{[/auditevents || /auditevents.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public org.springframework.http.Responseentidade
2018-03-26 23: 19: 00.171 Informações 6148 --- [Main] Osbaemvc.endpoIntHandlerMapping: mapeado "{[/mappings || /Mappings.json]. java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.172 Informações 6148 --- [Main] Osbaemvc.endpointHandlerMapping: mapeado "{[/autoconfig || /Autoconfig.json]. em java.lang.Object public java.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.173 Informações 6148 --- [Main] Osbaemvc.endpoInthandlermapping: mapeado "{[/Metrics/{name:.* }.methods=Get ].produces=pplication/vnd.spring-ot.actuator.gtuator] java.lang.Object org.springframework.boot.actuate.endpoint.mvc.metricsmvcendpoint.value (java.lang.string)
2018-03-26 23: 19: 00.173 Informações 6148 --- [Main] Osbaemvc.endpoInthandlermapping: mapeado "{[/metrics || /Metrics.json]. java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23:19:00.173 INFO 6148 --- [ main] osbaemvc.EndpointHandlerMapping : Mapped "{[/pause || /pause.json],methods=[POST]}" onto public java.lang.Object org.springframework.cloud.endpoint.GenericPostableMvcEndpoint.invoke()
2018-03-26 23: 19: 00.174 Informações 6148 --- [Main] osbaemvc.endpoIntHandlerMapping: mapeado "{[/Service-Registry/Instância-status], métodos = [post]}" para org.springframework.httP.Respondentity <? org.springframework.cloud.client.serviceregistry.endPoint.ServiceregistryEndPoint.SetStatus (java.lang.string)
2018-03-26 23: 19: 00.174 Informações 6148 --- [main] osbaemvc.endpoIntHandlerMapping: mapeado "{[/Service-Registry/Instância-STATUS], Métodos = [get]}" para public org.springframework.hTtp.Sespondentity org.springframework.cloud.client.serviceregistry.endPoint.ServiceregistryEndPoint.getStatus ()
2018-03-26 23: 19: 00.175 Informações 6148 --- [Main] Osbaemvc.endpoInthandlermapping: mapeado "{[/loggers/{name:.* mansPring-Boot.Actuator.Troduces=Pplication/vnd.spring-Boot.Thods=get.Produces=Pplication/vnd.spring-Boot.Boot.TEMTUM.TRODUCES=Pplication/Vnd.spring-Boot.Boot.TETUM.TRODUCES" java.lang.object org.springframework.boot.actuate.endpoint.mvc.loggersmvcendpoint.get (java.lang.string)
2018-03-26 23: 19: 00.175 Informações 6148 --- [Main] Osbaemvc.endpoIntHandlerMapping: mapeado "{[/loggers/{name:.* }.Methods=Post] ,consumes=[application/vnd.hort-Boot.PoT.Consumes=Pplication/vnd.Spring-Boot.PoT.Post.consumes=[application/vnd.spring-BoT-Boot.Post.Consumes=Pplication/vnd.Spring-Boot.PoT.Post.Consumes=Pplication/vnd.spring-Boot.pot.Consumes=Pplication/vnd.spring-BoT. Application/Json], Produces = [Application/Vnd.spring-boot.actuator.v1+json ||. java.lang.string>)
2018-03-26 23: 19: 00.175 Informações 6148 --- [Main] Osbaemvc.endpoIntHandlerMapping: mapeado "{[/loggers || /Loggers.json]. java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.176 Informações 6148 --- [Main] Osbaemvc.endpoIntHandlerMapping: mapeado "{[/heapdump || /heapdump.json]. org.springframework.boot.actuate.endpoint.mvc.heapdumpmvcendpoint.invoke (boolean, javax.servlet.http.httpServleTrequest, javax.iox.http.httpsletRessond)
2018-03-26 23:19:00.176 INFO 6148 --- [ main] osbaemvc.EndpointHandlerMapping : Mapped "{[/refresh || /refresh.json],methods=[POST]}" onto public java.lang.Object org.springframework.cloud.endpoint.GenericPostableMvcEndpoint.invoke()
2018-03-26 23: 19: 00.177 Informações 6148 --- [Main] osbaemvc.endpoIntHandlerMapping: mapeado "{[ /reume
2018-03-26 23: 19: 00.178 Informações 6148 --- [Main] Osbaemvc.endpoInthandlerMapping: mapeado "{[/configProps || /configProps.json]. java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.178 Informações 6148 --- [Main] Osbaemvc.endpoInthandlermapping: mapeado "{[/archaius || /archaius.json]. java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.179 Informações 6148 --- [Main] Osbaemvc.endpoIntHandLermapping: mapeado "{[/health || /health.json ].methods=Gettator ].produces=pplication/VND.Spring-Boot.Atuator] java.lang.Object org.springframework.boot.actuate.endpoint.mvc.healthmvcendpoint.invoke (javax.servlet.http.httpServletRequest, java.security.principal)
2018-03-26 23: 19: 00.179 Informações 6148 --- [Main] Osbaemvc.endpoIntHandlerMapping: mapeado "{[/Env], métodos = [post]}" para public java.lang.object org.springframework.cloud.context.environment.environmentManagermvcendPoint.value (java.util.map <java.lang.string, java.lang.string>)
2018-03-26 23: 19: 00.179 Informações 6148 --- [Main] osbaemvc.endpoiThandlerMapping: mapeado "{[/Env/Reset], Methods = [Post]}" em public java.util.map <Java.lang.string, java.lang.objeg org.springframework.cloud.context.environment.environmentManagerMVcendpoint.Reset ()
2018-03-26 23: 19: 00.179 Informações 6148 --- [Main] Osbaemvc.endpoInthandlermapping: mapeado "{[/recursos || /features.json ].methods=Get ],Produces=Pplication/VND.Spring-Boot.Actuator] java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.180 INFO 6148 --- [PRINCIPAL] osbaemvc.endpoIntHandlerMapping: mapeado "{[ /rewert || /restart.json ].methods=ponpost]}" em public java.lang.objects] org.springframework.cloud.context.restart.restartmvcendpoint.invoke ()
2018-03-26 23: 19: 00.181 Info 6148 --- [Main] Osbaemvc.endpoInthandlermapping: mapeado "{[/entity || /entity.json ].methods=Get ].produces=pplication/Vnd.Spring-Boot.Attuator] java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.181 Informações 6148 --- [Main] Osbaemvc.endpoInthandlermapping: mapeado "{[/info || /info.json ].methods=Get ].produces=pplication/vnd.spring-Boot.actuator] java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.193 Informações 6148 --- [Main] SwsMmareQuestMappingHandlerMapping: mapeado "{[/error]}" em public java.util.map <java.lang.string, java.lang.object> org.springframework.boot.actuate.endpoint.mvc.managementErrorendPoint.invoke ()
2. Configuração do arquivo de configuração YML
(1) Configure o número da porta e não permita um determinado módulo funcional
#Develop Número da porta, se não, é o mesmo que o servidor servidor.
A configuração acima indica que a porta configurada é a porta HTTP 4321 e a função /saúde está desativada.
(2) Modificar o caminho de mapeamento
#Modificar o caminho do ID do mapeamento de um terminal de configuração: Beans: ID: entidade
A configuração acima significa alterar o caminho para criar feijões /feijões para /entidade
(3) Configurar configuração de segurança do atuador
A segurança da mola é necessária
Introduzir dependências
<!-Para autenticação da conta do Centro de Acesso para Registro-> <Ependency> <PuerpId> org.springframework.boot </groupid> <stifactId> Spring-Boot-Starter-Security </ArtifactId> </pendence>
Configure a senha da conta:
Segurança: Básico: #Resents para ativar a autenticação da senha da conta Ativado: True #Configure Conta e Senha Usuário: Nome: Raiz Senha: 123
Depois de configurar a senha da conta, você pode acessá -la através de http://127.0.0.1:4321 e digite a conta e a senha configuradas. É válido quando o navegador não está fechado uma vez.
(4) Exibir a mensagem de exibição no formato JSON
A exibição do formato JSON tem melhor legibilidade e estética
#Print O pacote exibido pelo acyuator no formato json Spring: Jackson: Serialization: Indent-Output: true
Adicione a configuração acima ao arquivo Application.yml
3. Configuração da classe de inicialização
@SpringBootApplication@HableEureKaserver // Esta anotação de linha representa um componente registrado para um serviço. Esta anotação é aplicável apenas à classe Eurekapublic EurekaserverApplication {public static void main (string [] args) {springappplication.run (eurekaserverapplication.class, args); }}Execute sem configuração
4. Alguns módulos de configuração importantes
| Método de solicitação HTTP | caminho | descrever |
| PEGAR | /AutoConfig | Usado para obter informações de configuração automatizadas para o aplicativo |
| PEGAR | /feijões | Usado para criar todos os grãos pelo contexto do aplicativo |
| PEGAR | /ConfigProps | Obtenha o relatório de informações de atributo configurado no aplicativo |
| PEGAR | /Env | Usado para obter todos os relatórios de atributo de variável de ambiente disponível para o aplicativo |
| PEGAR | /mapeamentos | Relatório de relacionamento com mapeamento de controladores para obter todo o Springmvc |
| PEGAR | /Info | Usado para obter informações de personalização de aplicativos |
(1) /AutoConfig
Existem dois nós mestre nessa configuração.
PositiveMatches: Retorna informações de configuração automática para correspondência de condições bem -sucedidas
Negativematches: retorna informações de configuração que a condição corresponde não tem sucesso
(2) /feijão
Este arquivo de configuração é usado para exibir objetos de feijão carregados pelo contexto do aplicativo ApplicationContext, incluindo os seguintes nós:
"Context": "Bootstrap", "Parent": NULL, "Beans": [{"Bean": "PropertySourCootStrapConfiguration", "Aliases": [], "Scope": "Singleton", "Type": "Org.springframework.cloud.bootstrap.config.propertysourcebootstrapconfiguration $$ ENIDANCERBYSPRINGCGLIB $$ 82FDF928", "Recurso": "null", "Dependências": []}]Beans é uma coleção de classes carregadas no contexto do aplicativo, que inclui as seguintes tags:
1), Bean: o nome do feijão criado pelo contexto do aplicativo
2) escopo: o escopo do feijão criado
Singleton: Singleton, é o escopo padrão da primavera
Protótipo: cada solicitação gerará uma nova instância, que é equivalente a uma nova operação
Solicitação: Cada solicitação HTTP gerará uma nova instância e o feijão atual é válido apenas no mesmo httprequest
Sessão: Válida no mesmo httpssession
3), Tipo: o tipo de feijão usado para gerenciamento de contexto
Nome de classe totalmente qualificado para a classe
4) Recurso: o caminho específico para o arquivo de classe
5) Dependências: o nome do feijão de dependência, ou seja, o nome do feijão associado no feijão
(3) /ConfigProps: Obtenha o relatório de informações de atributo configurado no aplicativo
Existem dois nós filhos abaixo
Prefixo: configure prefixo para atributos
Propriedades: representa os nomes e valores de cada propriedade
(4) /Env é usado para obter o relatório de atributo de variável de ambiente do contexto do aplicativo, como variáveis de ambiente, atributos JVM, informações de configuração de aplicativos, parâmetros na linha de comando, etc.
1) Server.ports representa o número da porta configurado pelo aplicativo
2) O SystemProperties obtém a JVM e outras informações para o aplicativo
(5) /Relatório de mapeamento do controlador Springmvc Springmvc,
{"{[/error]}": {"bean": "requestmappinghandlerMapping", "Method": "public org.springframework.http.Responseentity <java.util.map <java.lang.string, java.lang.object >> org.springframework.boot.autoconfigure.web.basicerrorcontroller.error (javax.servlet.http.httpServletRequest) "}}1) /Erro representa o caminho de mapeamento do springmvc
2) /Bean representa a classe usada para mapeamento de mapeador de processador
3) /Método representa o método na classe de mapeamento
(6) Informações são usadas para obter informações de configuração personalizadas configuradas no Application.yml
5. Configuração das métricas
O conteúdo do relatório fornecido pelas métricas é alterado dinamicamente e fornece algumas informações sobre instantâneos; como uso de memória, contagem de solicitação HTTP, estatísticas de indicadores de recursos externos, etc.
(1) /Métricas retorna várias métricas importantes atualmente aplicadas. Existem o seguinte conteúdo
1) Informações do sistema: processadores --- Número de processadores
Instância.Uptime ------ Tempo de execução
SystemLoad.average -Média de carga do sistema, etc.
2), homens.*: Informações de resumo da memória do sistema
3), heap.*: Uso da memória da heap
4), não-heap.*: Uso de memória não-heap
5) Tópicos.*: Uso do tópico
6) Aulas.*: Situação de carregamento e descarregamento de classe
7), GC.*: Detalhes do coletor de lixo
8), httpssession.*: O status de pintura de recipientes como o tomcat
9), Magage.*: Retorna um valor de mapeamento, como tempo de atraso, etc.
10), Intest.*: Usado como contador, o aumento e diminuição da quantidade
(2) /Saúde: vários indicadores de saúde
Algumas informações sobre a memória são mostradas abaixo.
"Diskspace": {"status": "up", "total": 21475880960, "grátis": 8916258816, "limiar": 10485760}(3) /DUMP: Usado para expor as informações do thread no programa
ThreadName - o nome do thread exposto
ThreadID -ID do thread exposto, etc.
(4) /rastreio: usado para rastrear informações básicas para HTTP
6. Configuração da classe de controle de operação
(1) /Shutdowm é usado para fechar a operação remota do aplicativo-a solicitação de postagem
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.