kratos
文章平均质量分 87
kratos
daemon365
https://daemon365.cnblogs.com/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
kratos v2版本命令行工具使用
因为默认远程仓库地址是 github上的,在国内很容易创建失败,所以要需要设置终端或者git代理(什么是终端代理和git代理可以百度或者google一下)。使用这个命令需要下载 protobuf 工具 protoc,可以在官网下载对应版本。下import 进来 需要第三方的proto文件 可以放在这里。kratos new 命令为创建一个kratos项目。为指定proto文件生成简单的service代码。为创建一个proto模板。为生成 Proto 代码。repo地址 默认为。下可以看到生成的文件。原创 2024-06-13 10:39:52 · 959 阅读 · 0 评论 -
kratos http 原理
代码在https://github.com/go-kratos/kratos/blob/main/transport/http/client.go#L192。代码在https://github.com/go-kratos/kratos/blob/main/transport/http/router.go#L76。为了使http协议的逻辑代码和grpc的逻辑代码使用同一份,选择了基于protobuf的IDL文件使用proto插件生成辅助代码的方式。在上传的代码中http client的部分为。原创 2024-06-13 10:39:19 · 768 阅读 · 0 评论 -
Kratos漫游指南 1 - 概览
Kratos使用Protobuf进行API定义。Protobuf是由Google开发的一种语言中立的数据序列化协议。它有结构定义清晰、可扩展性好、体积小、性能优秀等特点,在众多公司和项目被广泛使用。在使用Kratos的项目中,您将使用如下的IDL进行您的接口定义,并且通过protoc工具生成相应的.pb.go文件,其中包含根据定义生成的的服务端和客户端代码。随后您就可以在自己的项目内部注册服务端代码使用,或引用客户端代码进行远程调用。原创 2024-06-13 10:38:43 · 917 阅读 · 0 评论 -
基于 OpenTelemetry 的链路追踪
随着业务的增加越来越多的服务之间的调用,如果没有一个工具去记录调用链,解决问题的时候就会像下面图片里小猫咪玩的毛线球一样,毫无头绪,无从下手。分布式跟踪(也称为分布式请求跟踪)是一种用于分析和监控应用程序的方法,尤其是使用微服务架构构建的应用程序。谷歌和微软下定决心结束江湖之乱,首要的问题是如何整合两个两个社区已有的项目,OpenTelemetry 主要的理念就是,兼容。中,这篇论文对于实现链路追踪,对于后来出现的 Jaeger、Zipkin 等开源分布式追踪项目设计理念仍有很深的影响。原创 2024-06-12 14:20:49 · 1428 阅读 · 0 评论 -
Go工程化 - 依赖注入
让我们从金拱门回来,重新总结一下用 wire 做依赖注入的过程。创建wire.go文件,定义下你最终想用的实例初始化函数例如initApp(即 Injector),定好它返回的东西*App,在方法里用罗列出它依赖哪些实例的初始化方法(即 Provider)/或者哪些组初始化方法(ProviderSet)ProviderSet 就是一组初始化函数,是为了少写一些代码,能够更清晰的组织各个模块的依赖才出现的。也可以不用,但 Injector 里面的东西就需要写一堆。像这样。原创 2024-06-12 14:20:01 · 1239 阅读 · 0 评论 -
通过 layout 探索 kratos 运行原理
执行命令后,会在当前目录下生成一个 service 工程,工程骨架如下,具体的工程骨架说明可以访问。Kratos 实例在启动时,监听了系统的进程退出信号,当收到退出信号时,kratos 会调用。通过上面的图例👆,我们可以直观观察到应用的调用链,简化来说如下图流程所示👇。项目在 main 方法中调用了。看到如下输出则证明项目启动正常。项目 main.go 的。原创 2024-06-11 16:14:24 · 697 阅读 · 0 评论 -
kratos 日志库的使用姿势
所谓日志(Log)是指系统所指定对象的某些操作和其操作结果按时间有序的集合。log文件就是日志文件,log文件记录了系统和系统的用户之间交互的信息,是自动捕获人与系统终端之间交互的类型、内容或时间的数据收集方法。日志是用来记录,用户操作,系统状态,错误信息等等内容的文件,是一个软件系统的重要组成部分。一个良好的日志规范,对于系统运行状态的分析,以及线上问题的解决具有重大的意义。原创 2024-06-11 16:13:30 · 2327 阅读 · 0 评论 -
从kratos分析breaker熔断器源码实现
熔断器是为了当依赖的服务已经出现故障时,主动阻止对依赖服务的请求。保证自身服务的正常运行不受依赖服务影响,防止雪崩效应。原创 2024-05-27 14:38:27 · 581 阅读 · 0 评论 -
从kratos分析BBR限流源码实现
自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。自动嗅探负载和 qps,减少人工配置削顶,保证超载时系统不被拖垮,并能以高水位 qps 继续运行指标名称指标含义cpu最近 1s 的 CPU 使用率均值,使用滑动平均计算,采样周期是 250msinflight。原创 2024-05-27 14:37:33 · 1173 阅读 · 0 评论
分享