0 人感兴趣 · 9 次引用
有一天,字节跳动的服务框架团队发现,他们的微服务数量和规模迎来了快速发展,但是现有的 Go RPC 框架无法满足他们的性能和扩展性需求。他们决定自己开发一个新的 RPC 框架~
针对调用失败情况,微服务框架通常会有一定的重试机制,Kitex 中的重试其实包含了三种,用于不同场景的重试,不过你知道他们是怎么实现的吗?这篇文章为你揭晓。
在进行 RPC 调用时,下游服务难免会出错。当下游出现问题时,如果上游继续对其进行调用,既妨碍了下游的恢复,也浪费了上游的资源。为了解决这个问题,使用熔断器,自动化的解决这个问题。
服务注册与服务发现是 RPC 框架中最重要的组件,地位仅次于加解密与通信的实现。在 Kitex 中,注册中心已经支持了主流的各个组件,如 registry-etcd、registry-nacos、registry-zookeeper、registry-polaris、registry-eureka、registry-consul 等。
如果你还不了解 Kitex,可以看看《[ CloudWeGo 微服务实践 - 01 ] 开篇》。如果你想参与 CloudWeGo 社区,给 Kitex 和其他组件贡献代码,可以看《如何给 CloudWeGo 做贡献》。
经过上一篇《[ kitex 源码解读 ] 限流》的文章,基本上也确定了一个解读代码的创作思路,在此做下总结以供参考。比如这个方法可能也比较适合从零到一慢慢熟悉一款开源项目。
限流是一种保护 server 的措施,防止上游某个 client 流量突增导致 server 端过载。
在 2022 年 3 月时,kitex 集中发布了一批补充单元测试的开源任务,原始 Issue 可以参看这里。
生命中任何一件事都值得全力以赴
InfoQ签约作者
我的工作是常年写bug|公众号:编程架构之美
⚡InfoQ签约作者
企业数据库创新实践者