概述
回声测试用于检测服务是否可用,回声测试按照正常请求流程执行,能够测试整个调用是否通畅,可用于监控。
EchoService
1 | public interface EchoService { |
消费端的服务对象(代理对象)自动实现 EchoService 接口,只需将任意服务引用强制转型为 EchoService 即可使用。关于创建服务消费端的代理对象时,自动实现 EchoService 接口可以参考 回声探测接口实现 。服务提供者是不实现 EchoService 接口,而是通过 EchoFilter 来处理回声探测请求。
那为什么 $echo
方法可以请求到服务端?首先消费方可以将请求发送到服务端,服务端接收到消息后进行解码后叫请求交给系列 ChannelHandler ,最终执行到 Protocol 层面的 Handler ,而查找 Invoker 是通过 group/path:version:port
和具体方法无关,虽然服务端没有该方法,但是是先触发的 Filter ,执行到这里就结束了,并不会再交给服务端的服务处理了。
EchoFilter
1 | 110000) (group = Constants.PROVIDER, order = - |