Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

服务没有下线,但是业务不可用的场景 #12974

Open
shenkonghui opened this issue Dec 20, 2024 · 1 comment
Open

服务没有下线,但是业务不可用的场景 #12974

shenkonghui opened this issue Dec 20, 2024 · 1 comment
Labels
kind/question Category issues related to questions or problems

Comments

@shenkonghui
Copy link

shenkonghui commented Dec 20, 2024

Describe the bug
我们遇到一个问题,由于复杂的原因,在k8s的一个节点(运行业务的节点)由于容器运行时故障,导致整个节点NotReady,(并发导致的一些问题,fd满了、高cpu、系统调用失败),机器上的服务在nacos中没有下线,但是业务发生了故障,故障环境没有有效的日志和监控保留。

我们尝试模拟了一些类似节点故障的场景没有很有效的模拟出故障。

  1. 基本上节点故障了故障节点服务都能有效的下线。
  2. 即使进程假死没有下线,进程仍然能提供服务。

我们有一些疑问:
我们发现了一些疑问,看到节点中出现DNS解析故障。如果是这种场景,可能会影响业务,但是nacos通过ip进行注册,应该不会收到影响,就不能很有效的检测这类故障进行及时下线。

我猜想了其他类似故障场景:
比如客户端业务线程死锁、等其他场景导致业务线程不可能。这种场景下应该都不影响nacos心跳,但是业务是不正常的,无法有效的切换服务。

另外我看到永久节点支持主动探测包含自定义HTTP接口,当然可以让业务自定义实现这类接口实现探活解决这类问题。但是我看永久节点好像不太适合在业务实例中使用?

尽管这类故障可能出现概率很低很低,但是有没有推荐的解决方法。

Expected behavior
A clear and concise description of what you expected to happen.

Actually behavior
A clear and concise description of what you actually to happen.

How to Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See errors

Desktop (please complete the following information):
version: nacos 1.3.0

Additional context
Add any other context about the problem here.

@KomachiSion
Copy link
Collaborator

nacos 1.x中的活性机制是通过心跳续约来进行的, 进程假死的话,心跳续约一般情况下都可以摘除。

但是有一种场景目前是无法处理的, 就是业务本身线程假死了,但是进程还有一定功能是正常的(比如向nacos-server发心跳)

这方面会在3.X版本中,通过解耦健康检查和实例类型来解决。

短期内可以尝试使用重试等方式来避免此类小概率故障的发生(dubbo等框架默认就自带此类检测方式)

@KomachiSion KomachiSion added the kind/question Category issues related to questions or problems label Dec 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/question Category issues related to questions or problems
Projects
None yet
Development

No branches or pull requests

2 participants