FAQ
這里列出與 Kitex 有關(guān)的常見問題。
Kitex 框架
Q: 支持 Windows 嗎?
- 暫時沒有針對 Windows 做支持,如果本地開發(fā)環(huán)境是 Windows 建議使用 WSL2。
Q: 是否支持 HTTP?
- Kitex 不專門提供 HTTP 請求支持,CloudWeGo 后續(xù)會開源 HTTP 框架 Hertz,預(yù)計開源時間是 2022 上半年。
- 如果是 API 網(wǎng)關(guān)場景,針對 Thrift 提供了 HTTP 映射的泛化調(diào)用,Kitex 會將 HTTP 請求做 Thrift 編碼發(fā)給服務(wù)端。
Q: 如何配置開啟連接多路復用?
- 如果使用 Thrift 或 Kitex Protobuf ,開啟連接多路復用:服務(wù)端配置 WithMuxTransport(),調(diào)用端配置 WithMuxConnection(1)。
- 如果使用 gRPC, 默認是連接多路復用。
Q: 本地直連場景下,配置長連接池為什么沒有生效?
- 本地測試 ip 需要改成 127.0.0.1,如 client.WithHostPorts(“127.0.0.1:8888”)。
Q: Kitex Protobuf 和 gRPC 協(xié)議區(qū)別
- Kitex Protobuf 是 Kitex 自定義的 Protobuf 消息協(xié)議,協(xié)議格式類似 Thrift。
- gRPC 是對 gRPC 消息協(xié)議的支持,可以與 gRPC 框架互通。
Q: 出現(xiàn) Thrift 接口編譯問題,如 not enough arguments in call to iprot.ReadStructBegin
- Kitex 依賴 Thrift v0.13,因為Apache Thrift v0.14 接口有 breaking change,無法直接升級。出現(xiàn)該問題是拉到了新版本的 Thrift,升級版本時建議不使用 -u 參數(shù),可以執(zhí)行命令固定版本 go mod edit -replace github.com/apache/thrift=github.com/apache/thrift@v0.13.0
Kitex 代碼生成工具
Q: 安裝代碼生成工具,出現(xiàn)了 ‘not enough arguments’ 問題
- 請開啟go mod:GO111MODULE=on go get github.com/cloudwego/kitex/tool/cmd/kitex@latest
Q: 新增接口重新生成代碼,是否會覆蓋handler.go
- kitex_gen/ 下的生成代碼會重新生成覆蓋,但服務(wù)端的 handler.go 不會覆蓋,只會新增對應(yīng)方法。
更多建議: