5.0 ExHook 连接失败:Method not found: emqx.exhook.v2.HookProvider/OnProviderLoaded

环境信息

  • EMQX 版本:5.0.3
  • 操作系统及版本:Windows
  • 其他

问题描述

按照官方的文档,启动Grpc服务,在管理端页面配置ExHook,日志一直报连接超时,我的端口是9090,日志里一直提示的10105是什么端口呢?

配置文件及日志


2022-08-02T20:00:07.458000+08:00 [error] line: 338, mfa: emqx_exhook_mgr:do_load_server/1, msg: failed_to_load_exhook_callback_server, name: <<"GRPC">>, reason: {deadline_exceeded,<<"Waiting for response timeout">>}
2022-08-02T20:00:57.443000+08:00 [error] host: {127,0,0,1}, line: 322, mfa: emqx_connector_http:on_get_status/2, msg: http_connector_get_status_failed, port: 10105, reason: econnrefused
2022-08-02T20:01:07.481000+08:00 [error] Unexecpted stream event: {gun_response,<0.9766.0>,#Ref<0.1173077868.2367160321.147794>,fin,200,[{<<"content-type">>,<<"application/grpc">>},{<<"grpc-status">>,<<"12">>},{<<"grpc-message">>,<<"Method not found: emqx.exhook.v2.HookProvider/OnProviderLoaded">>}]}, stream #{encoding => identity,hangs => [{{<0.2423.0>,#Ref<0.1173077868.2367160321.147796>},1659441672471}],mqueue => [],recvbuff => <<>>,st => {closed,idle}}
2022-08-02T20:01:12.483000+08:00 [error] function: on_provider_loaded, line: 406, mfa: emqx_exhook_server:do_call/5, module: emqx_exhook_v_2_hook_provider_client, msg: exhook_call_error, options: #{channel => <<"GRPC">>,failed_action => deny,timeout => 5000}, reason: {deadline_exceeded,<<"Waiting for response timeout">>}, req: #{broker => #{datetime => "1970-07-12T09:33:36.674703963+08:00",sysdescr => "EMQX",uptime => 3738056,version => "5.0.3"},meta => #{cluster_name => "emqxcl",node => <<"emqx@127.0.0.1">>,sysdescr => "EMQX",version => "5.0.3"}}
2022-08-02T20:01:12.484000+08:00 [error] line: 338, mfa: emqx_exhook_mgr:do_load_server/1, msg: failed_to_load_exhook_callback_server, name: <<"GRPC">>, reason: {deadline_exceeded,<<"Waiting for response timeout">>}
2022-08-02T20:01:59.491000+08:00 [error] host: {127,0,0,1}, line: 322, mfa: emqx_connector_http:on_get_status/2, msg: http_connector_get_status_failed, port: 10105, reason: econnrefused
2022-08-02T20:02:12.495000+08:00 [error] Unexecpted stream event: {gun_response,<0.9902.0>,#Ref<0.1173077868.2367160321.151542>,fin,200,[{<<"content-type">>,<<"application/grpc">>},{<<"grpc-status">>,<<"12">>},{<<"grpc-message">>,<<"Method not found: emqx.exhook.v2.HookProvider/OnProviderLoaded">>}]}, stream #{encoding => identity,hangs => [{{<0.2423.0>,#Ref<0.1173077868.2367160321.151544>},1659441737490}],mqueue => [],recvbuff => <<>>,st => {closed,idle}}



1 个赞

从 EMQX 发起的连接请求被拒绝了,建议检查下你的网络设置和防火墙设置


防火墙已经关闭,还是不可以呢?

看日志里有这个报错,意思是网络是通的,但是访问 gRPC 返回 Not found 了。

所以,需要检查下你的 java 服务实现的 exhook.proto 是否与 5.0 是匹配的。


这应该是个典型的问题,我猜测是你的 exhook.proto 没有更新,还是用的 4.x 的 文件