[SPRING] 스프링 부트 액츄에이터 상태 표시기
SPRING스프링 부트 액츄에이터 상태 표시기
우리는 여러 프로젝트에 Spring Boot를 사용하고 있으며 최신 버전 1.2.3을 사용하고 있습니다. 액츄에이터가 통합되었습니다. 지금까지는 / health 표시기 [default]가 서비스가 중단되었음을 표시한다는 것을 제외하고는 정상적으로 작동합니다. 이것은 사실이 아닙니다. 이러한 서비스는 데이터 소스로 구현됩니다. 다른 SOAP 또는 Rest 서비스를 호출 할 수 있습니다. 서비스가 중단되었는지 여부를 측정하는 의료 서비스는 무엇입니까?
해결법
-
==============================
1.#derFuerst에 따르면 DataSourceHealthIndicator에는 DB가 있는지 여부를 확인하는 기본 쿼리가 있습니다.
#derFuerst에 따르면 DataSourceHealthIndicator에는 DB가 있는지 여부를 확인하는 기본 쿼리가 있습니다.
적절한 공급 업체별 쿼리를 사용하려는 경우 Oracle 데이터 소스의 경우와 같이 구성 클래스에 자체 상태 표시기를 작성해야합니다.
@Autowired(required = false) private DataSource dataSource; @Bean @Primary public DataSourceHealthIndicator dataSourceHealthIndicator() { return new DataSourceHealthIndicator(dataSource, "SELECT 1 FROM DUAL"); }
-
==============================
2.DataSourceHealthIndicator는 사용 가능성을 검사하는 데 사용됩니다. 기본 쿼리는 SELECT 1이지만 일부 제품 별 쿼리도 있습니다. 자신의 HealthIndicator를 작성할 수 있습니다. 인터페이스를 구현하거나 AbstractHealthIndicator를 확장하십시오. 기본 db-health-check를 비활성화하려면이 줄을 응용 프로그램 속성 management.health.db.enabled = false에 넣습니다. 희망은 도움이 Logged
DataSourceHealthIndicator는 사용 가능성을 검사하는 데 사용됩니다. 기본 쿼리는 SELECT 1이지만 일부 제품 별 쿼리도 있습니다. 자신의 HealthIndicator를 작성할 수 있습니다. 인터페이스를 구현하거나 AbstractHealthIndicator를 확장하십시오. 기본 db-health-check를 비활성화하려면이 줄을 응용 프로그램 속성 management.health.db.enabled = false에 넣습니다. 희망은 도움이 Logged
-
==============================
3.위의 설명은 내 연구를 시작하는 데 도움이되었지만 나를 위해 충분하지 않았습니다.
위의 설명은 내 연구를 시작하는 데 도움이되었지만 나를 위해 충분하지 않았습니다.
@Bean @Primary public DataSourceHealthIndicator dataSourceHealthIndicator() { return new DataSourceHealthIndicator(dataSource, "SELECT 1 FROM DUAL"); }
헬스 인디케이터 @Bean을 다음과 같이 정의하고 필요한 쿼리를 제공합니다 :
@Bean @Primary public HealthIndicator dbHealthIndicator() { return new DataSourceHealthIndicator(dataSource, "SELECT 1 FROM DUMMY"); }
질의가 제공되지 않으면 SELECT 1이 사용됩니다. #derFuerst가 사용되는 것처럼 DataSourceHealthIndicator의 기본 구현은 다음과 같습니다.
public DataSourceHealthIndicator(DataSource dataSource, String query) { super("DataSource health check failed"); this.dataSource = dataSource; this.query = query; this.jdbcTemplate = dataSource != null ? new JdbcTemplate(dataSource) : null; } ... protected String getValidationQuery(String product) { String query = this.query; if (!StringUtils.hasText(query)) { DatabaseDriver specific = DatabaseDriver.fromProductName(product); query = specific.getValidationQuery(); } if (!StringUtils.hasText(query)) { query = "SELECT 1"; } return query; }
from https://stackoverflow.com/questions/29865940/spring-boot-actuator-health-indicator by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] AspectJ : 사용자 정의 * .aj 파일이 무시됩니다. (0) | 2019.05.20 |
---|---|
[SPRING] web.xml없이 웹 애플리케이션에 Struts2를 추가하는 방법은 무엇입니까? (0) | 2019.05.20 |
[SPRING] 스프링 MVC의 인터셉터 (0) | 2019.05.20 |
[SPRING] Hibernate를 통한 엔티티 저장시 org.hibernate.WrongClassException (0) | 2019.05.20 |
[SPRING] 이 Oracle 연결 오류가 발생하는 이유는 무엇입니까? ORA-12519, TNS : 적절한 서비스 처리기가 없습니다. (0) | 2019.05.20 |