Kitex v0.1.0 版本发布,高性能 Go RPC 框架
Kitex v0.1.0 版本已经发布,这是一个 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点,在字节内部已广泛使用。如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望定制扩展融入自己的治理体系,Kitex 会是一个不错的选择。
此版本更新内容包括:
功能
泛化调用
- IDL 解析支持多 Service
- 暴露 SetSeqID 方法便于二进制泛化场景 server 侧使用
- 泛化 client 支持关闭,规避内存泄漏问题
日志
- 修改日志风格,使用 “key=value” 列出信息
- 使用 klog 作为全局的日志输出工具
- 使用全局的 default logger
- 日志打印更多 context 信息,例如 logId,方便问题排查
- go func 传入服务信息用于 recover panic 后输出关键信息方便问题排查
Option
- 增加 NewThriftCodecDisableFastMode 方法,来关闭 FastWrite 和 FastRead
- Kitex server 支持端口复用
- 默认 RPC 超时设置为 0(在后续 PR 中,revert 了该变更)
Proxy
- Proxy 增加 ContextHandler 接口用于传递初始化ctx给 mwbuilder
- 注册 lbcache 的 Dump 给 diagnosis,用于问题诊断
- 将 PRCConfig 传递给 proxy.Config
优化
- 减少了对象的堆分配
- 优化多路复用性能
- 优化 grpc 编解码性能,通过 Release 时释放(Close) LinkBuffer
- 在计算 backup request 的消耗(cost)时,区分 ErrRPCFinish
- 多路复用分片队列逻辑移动至 netpoll/mux,并重命名分片字典
- 优化Fast api中容器类型的长度编码逻辑
Bug 修复
- 修复 server 端 WithErrorHandler 配置不生效问题
- 调整 lbcache 中的 Balancer 初始化逻辑
- 修复 TraceCtl 可能为 nil 的问题(仅影响单测)
- 设置默认的 rpc timeout, 并支持设置 WithRPCTimeout(0) 来关闭超时中间件
- 修复 default logger 使用错误的 call depth
- 重命名 BackwardProxy 为 ReverseProxy
- 修复 grpc 场景下的 panic
- 修复 grpc 场景下的潜在风险(keepalive 超时导致 panic)
- 修复 void 方法中的异常缺失
- 修复实例变更时 dump 信息不正确问题。
文档
- 修复失效的中文链接
- 将全部 doc 移至官网 cloudwego.io
Netpoll API Change:
- 适应 netpoll.Writer.Append 的 API 改动,返回值从 2个 变为 1个
依赖变化
- github.com/cloudwego/netpoll: v0.0.4 -> v0.1.2
详情查看:https://www.cloudwego.io/zh/blog/2021/12/13/kitex-v0.1.0-%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hunt Framework 3.4.6 发布,D 语言 Web 服务框架!
Hunt Framework 是完全使用 D语言(DLang)开发的 Web 服务框架,可以非常快速的开发出 RESTful 以及 MVC 服务端应用,马上 2022 年元旦了把版本的稳定性进一步提升!Hunt Framework 3.4.6 累计了上个版本以来的问题进行集中修复! 主要变更如下: Logger 整合,降低 GC 使用,优化编译时控制日志输出 完善 ObjectPool 模块 基于 ObjectPool 对 Redis 连接池进行重构 基于 ObjectPool 对 Database 连接池进行重构 升级兼容依赖容器 Poodinis 8.1.x版本 修复 HashMap 模块在处理超4万个元素时容易出现的断言异常问题 修复 ArrayList 模块存在内存泄漏问题 修复静态文件缓存时间参数失效的问题 修复 config 配置频繁加载问题 其他细节完善 参考 Documentation: https://github.com/huntlabs/hunt-framework-docs Hunt Skeleton: https://github.com/huntlabs/h...
- 下一篇
MyBatis JPA Extra v2.7 GA 发布
MyBatis JPA Extra对MyBatis进行了JPA扩展,旨在基于JPA 2.1的注释简化对单表CUID操作,根据JPA注释动态生成SQL语句;使用Interceptor实现数据库SELECT分页查询,适配多种数据库;另外提供mybatis-jpa-extra-spring-boot-starter简化SpringBoot集成。 MyBatis JPA Extra对MyBatis扩展JPA功能 1.基于JPA 2.1的注释简化CUID操作; 2.用Interceptor实现数据库SELECT分页查询; 3.提供mybatis-jpa-extra-spring-boot-starter,简化SpringBoot集成; 1、JavaBean注释简单 仅有6个注释 @Entity @Table @Column @Id @GeneratedValue @Transient @GeneratedValue有4中策略 AUTO snowflakeid uuid uuid.hex serial SEQUENCE generator值为数据库序列名 IDENTITY generator无,根...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker使用Oracle官方镜像安装(12C,18C,19C)