溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

springboot --自定義健康檢查

發(fā)布時間:2020-09-15 03:28:57 來源:網(wǎng)絡(luò) 閱讀:1511 作者:libing111 欄目:開發(fā)技術(shù)

1、添加依賴

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2、通過實現(xiàn)HealthIndicator接口方式

@Component
public class MyHealthIndicator implements HealthIndicator {
    @Override
    public Health health() {
        // 檢查通過(方式一新建對象)
        return new Health.Builder().withDetail("usercount", 10) //自定義監(jiān)控內(nèi)容
                .withDetail("userstatus", "up").up().build();
        // 檢查失敗(方式二靜態(tài)方法)
        //return Health.down().withDetail("status", errorCode)
        //        .withDetail("message", "服務(wù)故障").build();
    }
}

3、通過繼承AbstractHealthIndicator 方式

public class RedisHealthIndicator extends AbstractHealthIndicator {

    private static final String VERSION = "version";

    private static final String REDIS_VERSION = "redis_version";

    private final RedisConnectionFactory redisConnectionFactory;

    public RedisHealthIndicator(RedisConnectionFactory connectionFactory) {
        Assert.notNull(connectionFactory, "ConnectionFactory must not be null");
        this.redisConnectionFactory = connectionFactory;
    }

    @Override
    protected void doHealthCheck(Health.Builder builder) throws Exception {
        RedisConnection connection = RedisConnectionUtils
                .getConnection(this.redisConnectionFactory);
        try {
            if (connection instanceof RedisClusterConnection) {
                ClusterInfo clusterInfo = ((RedisClusterConnection) connection)
                        .clusterGetClusterInfo();
                builder.up().withDetail("cluster_size", clusterInfo.getClusterSize())
                        .withDetail("slots_up", clusterInfo.getSlotsOk())
                        .withDetail("slots_fail", clusterInfo.getSlotsFail());
            }
            else {
                Properties info = connection.info();
                builder.up().withDetail(VERSION, info.getProperty(REDIS_VERSION));
            }
        }
        finally {
            RedisConnectionUtils.releaseConnection(connection,
                    this.redisConnectionFactory);
        }
    }
}
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI