巡检Dubbo服务
目前,随着云原生技术的推广和普及,微服务化已成为趋势。但线上微服务接口可靠性却并不完善,无法实时感知异常,存在较大风险。本文介绍微服务巡检平台的相关操作,帮助您随时了解API或微服务接口的运行情况,降低服务风险。
背景信息
当前云原生时代呈现应用微服务化趋势,但企业如何保障线上微服务的可靠性,并主动感知线上微服务异常以降低业务风险呢?微服务巡检帮助您对线上服务进行7*24小时的秒级探测,实时了解服务的健康度,并且当服务异常时能够及时告警,尽快恢复以降低损失。
创建巡检任务
- 登录EDAS控制台。
- 在左侧导航栏,选择 。然后在Dubbo左侧导航栏单击服务巡检。
- 在服务巡检页面顶部菜单栏选择地域,在页面中选择微服务空间,然后单击创建巡检任务。
- 在创建任务面板中设置相关参数,然后单击确定。
参数 描述 服务巡检任务名称 服务巡检任务的名称。 应用 需要巡检的应用。 框架类型 支持Spring Cloud和Dubbo框架。系统会根据所选应用自动识别其框架,也可以手动选择Dubbo。 服务 选择需要巡检的目标服务。 方法 选择服务巡检的方法。 请求参数 设置请求参数。关于Dubbo服务的方法参数类型及配置方式,请参见Dubbo参考示例。 断言信息 设置接口返回值信息。如果返回值含有一个特征,如返回值含有123,则格式为"123";如果返回值含有多个特征,如同时含有123,abc,则格式为 ["123","abc"]
。巡检周期 设置巡检周期,单位秒/分钟,可自定义选择。 报警触发条件 当接口巡检异常时,设置告警触发的频率。 报警接收管理 接收告警的联系人组。在左侧列中选中需要接手告警的联系人组,并单击>,添加到右侧列表中。 报警通知方式 报警通知方式包含钉钉、短信和邮件。 服务巡检任务创建成功后,返回服务巡检列表,查看相关信息,包括巡检次数、可用率、平均响应时间等。
相关操作
您还可以执行以下操作管理服务巡检。
- 任务运行:在服务巡检列表页面,单击操作列的启动,可重新启动该服务巡检任务。
- 更新配置:在服务巡检列表页面,单击操作列的详情,可重新编辑服务巡检任务。
- 暂停服务:在服务巡检列表页面,单击操作列的暂停,可暂停该服务巡检任务。
- 查看失败记录:在服务巡检列表页面,单击操作列的失败记录,可查看该服务巡检的监控详情。
Dubbo参考示例
方法 | 参数类型填写方式 | 参数填写方式 |
String sayHello(String name); | ["java.lang.String"] | ["hello, dubbo"] |
String helloBean(HelloBean helloBean); | ["com.alibaba.dubbo.api.DemoService"] | [{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"}] |
String helloBean(HelloBean helloBean1, HelloBean helloBean2); | ["com.alibaba.dubbo.api.DemoService","com.alibaba.pts.dubbo.api.DemoService"] | [{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"},{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"}] |
String helloMap(Map helloMap); | ["java.util.Map"] | [{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"}] |
String helloMap(Map helloMap1, Map helloMap2); | ["java.util.Map", "java.util.Map"] | [{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"},{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"}] |
String helloList(List helloList); | ["java.util.List"] | [[1]] |
String helloList(List helloList1, List helloList2); | ["java.util.List","java.util.List"] | [[1],[1,2]] |
String helloString(String helloString); | ["java.lang.String"] | [[1],[1,2],[1,3]] |
String helloString(String helloString1, String helloString2); | ["java.lang.String","java.lang.String"] | ["hello, dubbo", "hello, dubbo"] |
String helloInt(int helloInt); | ["int"] | ["hello, dubbo", "hello, dubbo"] |
String helloInt(int helloInt1, int helloInt2); | ["int","int"] | ["1","2"] |
String helloBoolean(boolean helloBoolean); | ["boolean"] | ["true"] |
String helloBoolean(boolean helloBoolean1, boolean helloBoolean2); | ["boolean","boolean"] | ["true","false"] |
String helloVoid(); | [] | [] |