# 主动探测
## 说明
服务中心提供 RESTful 接口 Zabbix 检查每个服务接口的健康情况(延时/接口成功)。
服务中心根据配置,每 5 分钟对配置了的接口做调用,记录调用信息到内存中。
## 配置探测微服务方法
1. 登录服务中心
2. 左侧导航栏,服务方法查询 -> 服务方法查询
3. 输入要探测的微服务全称,点击搜索
4. 在搜索结果中,选择要探测的方法,点击"测试"
5. 输入“请求参数”和“期望返回参数”,点击“提交”
## 探测接口
### 探测 URL
```text
http://${服务中心IP}:8080/api/service/zabixSurvey
```
### 探测结果样例
```javascript
{
"code": 0,
"msg": "查询完成",
"data": [
{
"service": "com.guosen.foo.bar.HelloService",
"method": "echo",
"addr": "192.168.1.10",
"delay": 0,
"message": "请求参数未配置",
"desc": null,
"monitorTime": "2019-12-04 01:52:59",
"success": false,
"expect": false
},
{
"service": "com.guosen.foo.bar.HelloService",
"method": "sayHi",
"addr": "192.168.1.10",
"delay": 9,
"message": "服务正常",
"desc": null,
"monitorTime": "2019-12-04 01:53:00",
"success": true,
"expect": false
}
]
}
```
### 探测返回结果说明
| 参数名称 | 类型 | 说明 |
| :--- | :--- | :--- |
| code | int | 0 : 查询成功 1 : 查询失败 |
| msg | String | 查询结果信息 |
| data.service | String | 微服务全称 |
| data.method | String | 探测的方法名 |
| data.addr | String | 探测到的实例地址 |
| data.delay | String | 延时 |
| data.message | String | 该方法查询结果信息 |
| data.desc | String | 描述信息 |
| data.monitorTime | String | 探测时间 |
| data.success | Boolean | 探测是否成功 |
| data.expect | Boolean | 探测的返回值是否与设置的预期结果一致 |
- 简介
- 入门
- Docker方式
- 手工方式
- 环境搭建
- 简述
- 初始化服务器
- 安装 Etcd
- 初始化数据库
- 安装配置中心
- 安装服务中心
- 安装监控中心
- 安装API网关
- 开发第一个微服务
- 简述
- 准备工作
- 接口定义
- 实现
- 配置
- 部署
- 验证
- 微服务开发
- 服务调用
- 服务上下文
- 日志
- 高级特性
- 范化调用
- 异步调用
- ACL 控制
- 慢启动
- 消息大小
- 组件使用
- 简述
- 缓存
- MyBatis
- RocketMQ
- 分库分表
- 读写分离
- 分布式事务
- 分布式锁
- 运维管理
- 服务依赖
- 服务查询
- 服务方法查询
- 配置中心
- API网关配置
- 流量控制
- 简述
- 限流
- 熔断
- 系统保护
- 白名单
- 黑名单
- 监控
- 主动探测
- 调用链
- 日志开关
- 最佳实践
- 常见问题
- 深入 Zebra
- 架构
- 通信协议
- 路标