go-kratos / kratos-layout

Kratos Project Template
http://go-kratos.dev
MIT License
402 stars 205 forks source link

refactor: adjust server order to fit cmux #105

Closed moecasts closed 2 years ago

moecasts commented 2 years ago

说明

调整 server 注册顺序以适配 cmux。

现状

目前,httpServer 放在了 grpcServer 前面:

cMux := server.NewMux(confServer)
httpServer := server.NewHTTPServer(confServer, userService, cMux, logger)
grpcServer := server.NewGRPCServer(confServer, userService, cMux, logger)

按照 example 中的配置方式:

grpc.Listener(m.MatchWithWriters(cmux.HTTP2MatchHeaderFieldPrefixSendSettings("content-type", "application/grpc")))

http.Listener(m.Match(cmux.Any()))

会导致先命中 httpServer,永远请求不到 grpcServer

解决方法

grpcServer 移到 httpServer 前面。

好处

使模版开箱即用,避免新手遇到该问题,且不用自己手动修改顺序。