zoukankan      html  css  js  c++  java
  • 微服务健康监控方案

    目标

    1. 当服务出现,无法被访问、数据库连接不上、调用相关依赖的服务访问不通的问题时候,可以及时的报警通知。并且,有数据记录用于定位回溯问题点。
    

    可以做到什么

    1. 我的服务是否可以被他人访问通。(服务是否可达)
    2. 服务连接的数据库是否是正常。(数据库是否正常)
    3. 我的服务需要调用的其他服务是否也是正常的。(依赖是否可达)
    

    如何做到

    说明:
    	1.  spring boot actuator 框架 自身提供 /health 服务健康状态API。每次访问这个API ,都会触发实现了它接口功能的所以方法。 
    	2. 数据库是否可以正常访问,执行语句。  actuator  自己已经集成。
    	3. 业务是否出现异常
    		a. 微服务都是通过暴露自身API 来提供业务功能支持的
    		b. 基于上述原理,我们可以得到,暴露出去的功能接口出现了异常,那么该接口对应的业务功能就出现了异常。
    		c. actuator  自己已经集成 hystrix  ,只要做好接口熔断设置,当调用actuator/health API的时候就可以获取到业务是否异常。
    	4. 相关依赖服务是否可达,提供一个spring boot 插件 maven ,找个插件实现 actuator/health 接口,获取所有代理访问 bean,拿到当前服务的所有依赖服务,访问依赖服务的/info 节点,验证是否可达。
    

    预警

    	1. 以每分钟的频率访问注册过服务/health 节点。判断与解析响应信息,异常触发企业微信通知。
    

    状态描述

    1 down 2 访问异常 3 发送通知异常 4 成功

    1. down : /health 返回数据为down。显示返回结果(数据库异常信息,熔断异常信息,关联微服务异常信息)
    2. 访问异常 :访问服务监控API调用报错。显示报错信息
    3. 发送通知异常 : 异常通知消息发送失败。 
    4. 成功 : 微服务运行正常。
    

    可视化

    1. 服务注册页面管理 
    2. 服务状态信息展示 
    3. 服务历史状态数据图形化展示  

    体验地址

    1. http://39.101.204.94:11201
    

    为什么需要手动配置?

    1. 兼容非Spring boot 项目
    2. 现实情况,从注册中心拿到的有一部分是无法访问的不正确地址。(没有基本规范!!!)

    为什么不使用spring boot admin ?

    1. 一些类原因,说服不了他人信任该项目
    2. 报警机制不满足要求,
    3. 没有历史记录。

    开源地址:

    https://github.com/atliwen/ServiceStatusCheck

  • 相关阅读:
    Unity3D Asset文件导出3DMax 可编辑格式
    Android 内存管理
    常见面试之机器学习算法思想简单梳理
    最短的计算大数乘法的c程序
    MQTT---HiveMQ源代码具体解释(一)概览
    ZMQ源代码分析(一)-- 基础数据结构的实现
    JavaScript 性能分析新工具 OneProfile
    firefox关于about:config的常用配置
    postgres数据库中的数据转换
    postgres的强制类型转换与时间函数
  • 原文地址:https://www.cnblogs.com/atliwen/p/12765511.html
Copyright © 2011-2022 走看看