sofastack / sofa-dashboard-client

Apache License 2.0
16 stars 25 forks source link

The readiness status is incorrectly determined when the application starts. #23

Open chpengzh opened 5 years ago

chpengzh commented 5 years ago

现象

如果同时启动一个服务的两个实例,后启动的实例状态为DOWN,哪怕该实例正常启动(无端口占用,无其他启动异常,/actruator/health接口返回值为UP)

定位

try {
        String status = readinessCheckListener.getHealthCheckerStatus()
                        && readinessCheckListener.getHealthCallbackStatus() 
              ? Status.UP.toString() : Status.DOWN.toString();
        publisher.getApplication().setAppState(status);
        publisher.register();
} catch (Exception e) {
        LOGGER.info("sofa dashboard client register failed.", e);
}

其中:

请问一下getHealthCallbackStatus这个函数是何含义? 这里的逻辑应该如何修改?

sofastack-bot[bot] commented 5 years ago

Hi @chpengzh, we detect non-English characters in the issue. This comment is an auto translation by @sofastack-robot to help other users to understand this issue.

We encourage you to describe your issue in English which is more friendly to other users.

Phenomenon If two instances of a service are started at the same time, the instance state that is started later is DOWN, even if the instance starts normally (no port is occupied, no other startup exception, /actruator/health interface returns <UP> #位置java try { String status = readinessCheckListener.getHealthCheckerStatus() &amp;&amp; readinessCheckListener.getHealthCallbackStatus() ? Status.UP.toString() : Status.DOWN.toString(); publisher.getApplication().setAppState(status) ; publisher.register(); } catch (Exception e) { LOGGER.info(&quot;sofa dashboard client register failed.&quot;, e); } where: - readinessCheckListener#getHealthCheckerStatus returns true - readinessCheckListener# getHealthCallbackStatus returns false What does the getHealthCallbackStatus function mean? How should the logic here be modified?