Posts in 2023
CloudWeGo 易用性建设:提升 Go 语言云原生工程效率之路
Thursday, December 21, 2023 in 新闻
项目:
本篇文章是 CloudWeGo 两周年庆典系列的第二篇。 这次分享会首先给大家同步下 CloudWeGo 易用性建设的一个简单背景,然后会介绍我们针对易用性建设做了哪些工作,最后会对未来的工作进行展望。 背景 CloudWeGo 是一套由字节跳动基础架构服务框架团队开源的、可快速构建企业级云原生微服务架构的中间件集合。 CloudWeGo 下的项目主要有三个特点:高性能、高扩展性以及高可靠性;并且,在开源后我们也更加重视易用性的建设,我们意识到易用性可以给社区带来很多用户、进而形成活跃的社区氛 …
Release v0.8.0
Thursday, November 30, 2023 in Kitex
项目:
重要变更介绍 功能 1. gRPC 协议支持多 Service Kitex gRPC 支持多 Service 的能力,详见 Multiple Services. 2. Acquire Kitex RPCInfo 提供 kitexutil 方法以方便从 RPCInfo 获取 rpc 信息, 详见 Acquire RPC information. 优化 1. Map 泛化调用 Map 泛化支持通过 SetBinaryWithByteSlice 设置对 binary 字段返回 []byte。 2. …
Kitex 两周年回顾 — 能力升级、社区合作与未来展望
Thursday, November 30, 2023 in 新闻
项目:
本篇文章是 CloudWeGo 两周年庆典系列的第一篇。 今天的分享主要分成三个部分,首先是 Kitex 的能力升级,看一下过去一年在性能、功能和易用性这个方面上的一些进展。第二个是社区合作项目的进展,特别是其中两个重点项目 Kitex-Dubbo 互通以及配置中心集成。第三个是给大家剧透一下我们目前在做以及计划做的一些事情。 能力升级 性能 在2021年9月,我们曾发布了一篇字节跳动 Go RPC框架 Kitex 性能优化实践, 这篇文章介绍了如何通过自研网络库 Netpoll、 …
Release v0.8.0
Monday, October 23, 2023 in Volo
项目:
Volo 0.8.0 版本中,我们主要使用了 AFIT(Async Fn In Trait) 和 RPITIT(Return Position Impl Trait In Traits) 这两个刚刚 stabilized 的 feature 重构了 Service trait 和之前所有用了 async_trait 的地方,除了会有略微的性能提升外,更重要的是,接下来写 Service 可以直接写 async fn call 了,易用性会有较大的提升。 Break Change Service …
Release v0.5.1
Wednesday, October 18, 2023 in Netpoll
项目:
Fix [#289] fix: 解决当建立建立超时时,遇到 panic 或 fault 错误 Optimise [#290] optimise: 移除已经不使用的 inputBarrier
Release v0.7.2
Wednesday, September 27, 2023 in Kitex
项目:
重要变更介绍 功能 1. 重试: 限制重试请求占比 该特性优化了备用请求的可用性:如某个请求超过重试等待时间,会触发一个备用请求,但如果该请求在RPC超时阈值之内,最终可以正常处理,因而不会被当做失败请求,这会在偶发网络异常时导致大量重试请求,增加服务端压力甚至引起雪崩。 建议更新现有代码: 使用 retry.NewRetryContainerWithPercentageLimit() 来构造 RetryContainer,限制重试请求占比; 在 Client …
Release v0.7.0
Tuesday, September 26, 2023 in Hertz
项目:
Hertz v0.7.0 版本中,除了常规迭代优化之外,我们还带来了一个重要 feature。 参数绑定重构 在 Hertz v0.7.0 版本中,我们重构了 hertz 参数绑定 https://github.com/cloudwego/hertz/pull/541 重构说明 在 Hertz v0.7.0 版本中,我们重构了参数绑定能力,将参数绑定能力收敛到框架本身,以更好地支持用户的需求。本次重构主要有以下特点: 功能一致: Binder:重构后在 Hertz …
Release v0.5.0
Tuesday, September 26, 2023 in Netpoll
项目:
Optimize [#274] optimize: 添加初始 bookSize 到 8KB 以减少连接最初读取时的开销 [#273] optimize: 当读取一个已经关闭连接时,忽略 EOF 错误 Fix [#283] fix: 保护 operator 不被 detach 两次 [#280] fix: 修复 detach operator race 问题 [#278] fix: OnRequest 应该等待所有 readable 数据都被消费完毕 [#276] fix: 缺少 import 库 …
Release v0.5.4
Monday, August 28, 2023 in Volo
项目:
Volo 0.5.4 版本中,除了常规 bugfix 之外,还有一些新的 feature 引入。 Thrift 协议支持 Unknown Fields Motivation 保留 Thrift 解码中未被识别的字段,使用场景比如代理使用IDL的子集解析完整数据,其中未识别的数据将保留成为未识别字段,并透传到下游,可以减少本服务不必要的 IDL 更新或者只解析关心的子集部分。 Solution 在解码 read 步骤时,对于未识别的字段递归进行skip得到长度后,将对应长度的一段 bytes 直接 …
Release v0.7.0
Monday, August 14, 2023 in Kitex
项目:
重要变更介绍 功能 1. gRPC 压缩支持 实现了 KiteX gRPC 的压缩功能支持,可以使用例如 gzip 等压缩方法减小 payload 体积 2. GLS 使用 local-session 组件兜底请求上下文传递,解决用户没有传递 ctx 导致的微服务断链问题 优化 1. Unknown Fields 无序列化优化 实现无序列化的 unknown field 功能,无序列化unknown fields方案在FastCodec上性能提升约6x ~ 7x,详见:#1017 2. …