// Tracer is executed at the start and finish of an RPC.type Tracer interface {Start(ctx context.Context) context.ContextFinish(ctx context.Context)}复制代码
【error errorreporter】Kitex 的监控打点、Metrics 上报以及链路追踪,都可以通过上述接口进行扩展 。
目前 Kitex-contrib 组织下提供了 Prometheus 的监控扩展,OpenTracing 的链路追踪扩展,以及 OpenTelemetry 可观测性全家桶(Metrics + Tracing + Logging)扩展实现,用户可以按需接入相应的扩展 。
微服务框架与服务网络
服务框架是传统微服务技术的核心所在 。早期微服务技术中的服务注册、发现、调用、治理、观测都离不开服务框架 。这也带来了一些问题,比如业务研发者需要感知并使用服务框架的服务治理能力,框架版本升级困难,框架越来越重难于维护等等 。
服务网格(Service Mesh)是将无侵入服务治理定义的更为深入的微服务架构方案,被称为第二代微服务架构 。通过将微服务治理能力以独立组件(Sidecar)整合并下沉到基础设施,服务网格可以实现应用业务逻辑与服务治理逻辑完全分离,这也使支持多语言、热升级等高阶特性变得顺理成章 。

文章插图
进入云原生时代,随着服务网格技术的逐步发展,我们也要用发展的眼光进行架构规划和设计,微服务框架和服务网格未来必定会是并存的,统一组成服务治理体系 。在字节跳动,服务治理体系就是由服务框架和服务治理组成 。以 Golang 服务为例,CloudWeGo 提供业务强相关、强侵入的服务治理,字节 Service Mesh 提供业务弱相关、弱侵入的服务治理,相互搭配,相互协商,既解决了业务开发所需的脚手架和开发模式,又让服务治理的接入更加容易 。
与此同时,在服务网格和服务框架同时使用的场景下,服务框架必须要支持灵活卸载治理能力,服务网格也需要保证功能的稳定性 。在未来技术的演进方向上,服务框架也主要专注于编解码、通信效率、多协议支持等方面,而服务网格则可以深入更多无侵入的服务治理功能研发中 。
此外,在大规模场景下,针对服务治理新功能的研发需求决策,我们往往还需要考虑以下因素:
- 性能: 大部分业务很在意,也是团队一直努力的重点;
- 普遍性: 需要评估是不是所有业务都需要的能力;
- 简洁: 通俗说,我们不太希望引入太多的线上问题或者太复杂的使用说明文档;
- ROI:功能迭代、产品升级需要考虑整体投资回报率 。

文章插图
字节内部版本的 Kitex 是依赖于开源版本的 Kitex,因此可以理解为 Kitex 内外同源,不存在两个 Kitex 。
为什么开源?
回到开篇的问题,为什么要创造一个新的项目,并且开源 CloudWeGo 呢?
首先,CloudWeGo 里面的项目都是在字节内部经过大规模落地实践验证的,开源后每个功能的迭代也都是第一时间在内部使用验证过的,是一个真正的企业级落地项目,开源用户和字节内部业务使用的是同一套服务框架;其次,CloudWeGo 提供的功能,尤其是协议支持和服务治理,都是能解决真实业务痛点的,每一行代码优化都能实实在在地提升用户服务的性能;最后,CloudWeGo 的研发也借鉴了一些知名开源项目的设计思路,同时也依赖一些开源项目的实现,我们把 CloudWeGo 开源出去也是为了回馈社区,给开源社区贡献一份力量 。
- 葫芦陶瓷罐有风水作用吗好吗
- 薛城风水大师
- 诀窍的英文 小窍门 英语
- 初中广播稿500字左右 初一广播稿500字左右摘抄稿
- 风水月亮代表什么星象
- 吴川风水群 吴川风水留题
- 怎么联系风水大师电话 风水地理专家联系电话微信号
- 超级有趣的冷知识 100个超级有趣的冷知识问答
- 山在风水中代表什么 酒在风水中代表什么意思
- 宗祠的风水如何 斜门宗祠风水讲究
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
