haiyux

路漫漫其修远兮,吾将上下而求索。

0%

概念 kratos 为了使http协议的逻辑代码和grpc的逻辑代码使用同一份,选择了基于protobuf的IDL文件使用proto插件生成辅助代码的方式

责任链模式 责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处

适配器模式 适配器模式用于转换一种接口适配另一种接口。比如,现在有个借口是对json字符串进行分析等,现在有一些yaml文件也要分析,这时候我

单例模式 为什么要用单例模式 保证一个对象只有一个实例 ,减少内存开销。比如一些可以复用一个连接的网络,比如http2 client等,而且可以减少

error定义 数据结构 go语言error是一普通的值,实现方式为简单一个接口。 1 2 3 4 5 // The error built-in interface type is the conventional interface for // representing an error condition, with the nil value representing no error. type error interface

什么是DDD? DDD 是 Domain-Driven Design 的缩写。 其主要的思想是,我们在设计软件时,先从业务出发,理解真实的业务含义,将业务中的一些概念吸收到软件建模中来,避免

kratos命令行工具是什么? kratos tool 是微服务框架 kratos 的命令行工具,提供创建模板,编译protobuf 文件,运行项目等功能。 使用 下载 1 go install github.com/go-kratos/kratos/cmd/kratos/v2@latest 查看是

备注:这是一个 beta 版本的内容 这个教程介绍了 Go 泛型的基础概念。 通过泛型,你可以声明并使用函数或者是类型,那些用于调用代码时参数需要兼容多个不同类

macOS 全局 Command + Shift + P / F1 显示命令面板 Command + P 快速打开 Command + Shift + N 打开新窗口 Command + W 关闭窗口 基本 Command + X 剪切(未选中文本的情况下,剪切光标所在行) Command + C 复

net/http 路由注册 1 2 3 4 5 6 7 8 9 func test1() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello world!") }) err := http.ListenAndServe(":9001", nil) if err != nil { log.Fatal("ListenAndServer:", err) } } 在使用ListenAndServe这个方法时,系统就会给我们

创建项目 首先需要安装好对应的依赖环境,以及工具: go 下载 protoc go install google.golang.org/protobuf/cmd/protoc-gen-go@latest protoc-gen-go go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest 1 2 3 4 5 6 7 8 9 10 11 12 # 创建项目模板 kratos new helloworld cd helloworld # 拉取项目依赖 go mod download #

令牌桶算法 是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌。令牌桶算法的描述如下: 假设限制2r/s,则按照500毫秒的固定速率往桶中添

什么是隔离? 隔离,本质上是对系统或资源进行分割,从而实现当系统发生故障时能限定传播范围和影响范围,即发生故障后只有出问题的服务不可用,保证其

链路追踪的前世今生 分布式跟踪(也称为分布式请求跟踪)是一种用于分析和监控应用程序的方法,尤其是使用微服务架构构建的应用程序。分布式跟踪有助于

我们在微服务框架 kratos v2 的默认项目模板中 kratos-layout 使用了 google/wire 进行依赖注入,也建议开发者在维护项目时使用该工具。 wire 乍看起来比较违反直觉,导致很多同学不理解为