FAQ
這里列出與 Kitex 有關(guān)的常見問(wèn)題。
Kitex 框架
Q: 支持 Windows 嗎?
- 暫時(shí)沒(méi)有針對(duì) Windows 做支持,如果本地開發(fā)環(huán)境是 Windows 建議使用 WSL2。
Q: 是否支持 HTTP?
- Kitex 不專門提供 HTTP 請(qǐng)求支持,CloudWeGo 后續(xù)會(huì)開源 HTTP 框架 Hertz,預(yù)計(jì)開源時(shí)間是 2022 上半年。
- 如果是 API 網(wǎng)關(guān)場(chǎng)景,針對(duì) Thrift 提供了 HTTP 映射的泛化調(diào)用,Kitex 會(huì)將 HTTP 請(qǐng)求做 Thrift 編碼發(fā)給服務(wù)端。
Q: 如何配置開啟連接多路復(fù)用?
- 如果使用 Thrift 或 Kitex Protobuf ,開啟連接多路復(fù)用:服務(wù)端配置 WithMuxTransport(),調(diào)用端配置 WithMuxConnection(1)。
- 如果使用 gRPC, 默認(rèn)是連接多路復(fù)用。
Q: 本地直連場(chǎng)景下,配置長(zhǎng)連接池為什么沒(méi)有生效?
- 本地測(cè)試 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 是對(duì) gRPC 消息協(xié)議的支持,可以與 gRPC 框架互通。
Q: 出現(xiàn) Thrift 接口編譯問(wèn)題,如 not enough arguments in call to iprot.ReadStructBegin
- Kitex 依賴 Thrift v0.13,因?yàn)锳pache Thrift v0.14 接口有 breaking change,無(wú)法直接升級(jí)。出現(xiàn)該問(wèn)題是拉到了新版本的 Thrift,升級(jí)版本時(shí)建議不使用 -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’ 問(wèn)題
- 請(qǐng)開啟go mod:GO111MODULE=on go get github.com/cloudwego/kitex/tool/cmd/kitex@latest
Q: 新增接口重新生成代碼,是否會(huì)覆蓋handler.go
- kitex_gen/ 下的生成代碼會(huì)重新生成覆蓋,但服務(wù)端的 handler.go 不會(huì)覆蓋,只會(huì)新增對(duì)應(yīng)方法。
更多建議: