第五届青训营后端第二天学习笔记| 青训营笔记

48 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

一、本堂课重点内容:

  • kitex环境配置
  • kitex优势
  • demo展示

kitex是一个极其优秀的rpc框架,与grpc等框架比起来,性能优越性更高,开发更加方便等特性,因此在我们的大项目中,也采用了kitex作为rpc框架进行系统整体开发。 在本次文章中(可能分成两次文章进行写,因为本人过于懒😢),重点讲解环境配置,也希望读者不要踩我的坑,毕竟同一条河流不能踏两次。

二、kitex环境配置:

环境配置的话,掘金上、官网都有非常详细的述说,在这里我就不画龙添足了,只需要说一下我觉得需要注意的东西,首先官方说kitex的代码生成器目前对于windows的配置还不够,在这个月或者下个月会提供支持,因此windows用户使用wsl(1也行)来进行生成,生成完之后就无所谓了。 安装的流程如下所示(www.cloudwego.io/zh/docs/kit…

1.go环境安装

2.安装kitexgo install github.com/cloudwego/kitex/tool/cmd/kitex@latest

3.安装protoc或者thriftgo

4.测试 kitex --version

ps:建议安装thriftgo,因为protoc安装有点麻烦

三、kitex优势

1.在使用过程中,首先相比普通的grpc,其代码生成器非常的香,这是很好用的,像是kitex官方文档中说的,让开发人员更加关注业务逻辑,而不是其他杂项。

2.速度快,首先rpc不走http协议本来就快,其次kitex作为字节的重点项目,也比普通的rpc项目更快。

3.其他的可以看官方文档的比较。

四、个人总结:

  • 总结,kitex具有天然优势,微服务的架构中,服务与服务之间使用kitex的rpc就非常的好,既体现了速度,也方便了开发。
  • 然后http协议使用字节的hertz,与kitex的关联也成熟和方便,体现在nacos的注册和解析都蛮方便的。
//注册
func main() {
   r, err := registry.NewDefaultNacosRegistry()
   if err != nil {
      panic(err)
   }
   svr := userInfoPb.NewServer(
      new(UserInfoImpl),
      server.WithServiceAddr(&net.TCPAddr{Port: 50051}),
      server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: "userInfoImpl"}),
      server.WithRegistry(r),
   )
   if err := svr.Run(); err != nil {
      log.Println("server stopped with error:", err)
   } else {
      log.Println("server stopped")
   }
}

// 解析
r, err := resolver.NewDefaultNacosResolver()
if err != nil {
   panic(err)
}
newClient := userinfo.MustNewClient(
   "userInfoImpl",
   client.WithResolver(r),
   client.WithRPCTimeout(time.Second*3),
)

五、引用参考:

  1. www.cloudwego.io/zh/docs/kit…