You need to enable JavaScript to run this app.
文档中心
文档控制台
注册
微服务引擎

微服务引擎

复制全文
下载 pdf
微服务治理
应用无损上线
复制全文
下载 pdf
应用无损上线

针对应用无损上线场景,MSE 为您提供服务延迟注册、服务健康检查功能。

功能介绍

建议同时开启健康检查和延迟注册功能,确保服务优雅启动。

功能功能介绍适用场景
健康检查微服务上线过程中,健康检查帮助 Kubernetes 判断服务提供者是否完成注册(而不是注册中),注册完成后告知服务消费者,确保服务消费者具备可用的服务提供者。容器化服务的服务发布
延迟注册延迟注册可以让应用在充分初始化后,再注册到注册中心,对外提供服务。延迟注册可以应对需要提前完成缓存数据加载的场景,避免应用启动后直接注册服务,流量资源未就绪而导致的报错。
  • 本地缓存加载
  • 本地文件加载

注意事项

完成延迟探测时间 initialDelaySeconds(秒)设置。建议您设置该值时做如下参考。若未按下述内容做设置,可能会收到容器平台的就绪探测未通过的告警,但不会影响功能的正常使用。

  • 已开启 服务延迟注册initialDelaySeconds 取值大于您在配置的 延迟注册时间
  • 未开启 服务延迟注册initialDelaySeconds 取值大于您的应用完全就绪的时间。

操作步骤

第一步:健康检查

说明

  • 使用健康检查前,Kubernetes 中已配置 readinessProbe 参数。

  • 虚拟机场景 无需配置 readiness 机制。健康检查插件会对 Spring 的 WebServerInitializedEvent 事件进行监听,当监听到 WebServerInitializedEvent 事件后,才对实例进行注册和订阅。

Kubernetes 提供了 Readiness 健康检查机制,允许 Pod 在启动前完成预备工作。在容器场景中,Kubernetes 的 Readiness 机制配合 MSE Agent 的健康检查 API,可以保证流量的优雅上线。

如下示例代码所示,仅需在 Kubernetes 的 Readiness 机制中添加 MSE Agent API 指令 && curl -sf http://127.0.0.1:17000/lossless/health/readiness

  • 改造前

    readinessProbe:
       exec:
         command:
            - /bin/sh
            - -c
            - "curl -sf http://127.0.0.1:8080/actuator/health"
       initialDelaySeconds: 5
    
  • 改造后

    readinessProbe:
       exec:
         command:
            - /bin/sh
            - -c
            - "curl -sf http://127.0.0.1:8080/actuator/health && curl -sf http://127.0.0.1:17000/lossless/health/readiness"
       initialDelaySeconds: 5
    

第二步:延迟注册

您也可以基于专家经验指定一个超时时长,在健康检查完成后,延迟相应时间后再注册上线。接入 Java 应用前在控制台开启 延迟注册 功能,并设置对应的时长即可,详情操作参见 接入 Java 应用

alt

最近更新时间:2024.09.27 10:08:49
这个页面对您有帮助吗?
有用
有用
无用
无用