現象:err: rpc error: code = Unimplemented desc =
背景:調用鏈路A->B->C,A是一個Http協議的接口,B也是一個Http協議的接口, 但C是一個Grpc協議的接口。
解決思路:查看C服務對應的proto,比對B Client 對應的proto發現package對不上換了之后解決問題。
B 服務定義的proto
syntax = "proto3";package media.adapter;service ShotVideoCoverService {rpc Cover(CoverRequest) returns(CoverResponse);
}message CoverRequest {optional string session_id = 1;
}message CoverResponse {optional string session_id = 1;
}
C服務端的定義:
syntax = "proto3";package test;service ShotVideoCoverService {rpc Cover(CoverRequest) returns(CoverResponse);
}message CoverRequest {optional string session_id = 1;
}message CoverResponse {optional string session_id = 1;
}
這里具體沒研究過遇到這個問題是一個排查思路,在網上查資料服務端+客戶端對應的proto服務名稱一定要對得上。
工作中遇到的問題記錄