跳到主要内容
Hello! 我是Keson

go-zero 开源项目主要贡献人之一,goctl 维护人,字节跳动开发工程师

自我介绍
千库网_加班的眼镜程序员_元素编号10614816

最新博客 

preview

我们在做框架调研时,你可能会先通过 google 去搜索相关关键词得到一些结果,其次是从 GitHub 查看相应的 Topic 来选择合适的框架。相信大多数人 在选择框架时,不会随随便便就拿来用,而是查看一些该仓库的指标来决定是否选择,或者对多框架进行对比。

cover

软件架构风格从大型机(Mainframe),到原始分布式(Distributed),到大型单体(Monolithic),到面向服务(Service-Oriented), 到微服务(Microservices),到服务网格(Service Mesh),到无服务(Serverless)……技术架构上确实呈现出“从大到小”的发展趋势。

cover

接着上篇《gRPC 插件式编程之Resolver》,gRPC 将 target 解析为 resolver.Target 后,通过 resolver.Builder.Build 方法调用 resolver.ClientConn.UpdateState(State) error 方法,该方法做了哪些事情呢,我们本篇接着看源码往下走。

cover

随着微服务越来越盛行,服务间的通信也是绕不开的话题,gRPC 在众多 RPC 框架中算得上佼佼者,不仅其有一个好爸爸,grpc 在扩展方面也给开发者留 有足够的空间,今天我们将走进grpc 扩展之 Resolver,gRPC Resolver 提供了用户自行解析主机的扩展能力,我们在使用 gRPC 时,大家有没有想过, 为什么 gRPC 为什么支持以下几种格式的 target:

cover

本次源码阅读的目的是希望了解到grpc从client调用到server端响应的流程, 而非系统性的对每个逻辑都进行分析和详解。如果能通过本次学习到阅读grpc源码的 线索或者大致了解到其工作流程,这次阅读就有价值。

本次阅读以一元rpc使用为导向。

cover

go module

在go1.16版本发布后,go module由原来的默认值 auto 变为 on 了,这意味着后续开发中,go更推荐用go module 模式开发,而不是gopath模式开发了。

在之前,我也是大多数以go module模式进行golang开发,但至今对其不熟悉,仅仅停留在:别人是这样做的,我跟着做就是了 ,这都算不上会使用go module, 更不必说熟悉或者精通了;在此之前,我会存在这些疑问: