分类分类
大小:0.34 MB 更新:2021/04/28
类别:编程工具系统:WinXP, Win7, Win8, Win10, WinAll
Kratos提供非常多的服务框架,可以帮助用户在搭建网站和应用的时候快速配置通讯服务器,配置HTTP服务,配置数据分发服务,软件提供的微服务内容还是很多的,可以在软件使用api框架组件快速设计项目,直接调用api功能就可以提升设计效率,轻松部署相关的功能模块,支持错误组件功能,通信错误消息处理方案可以使用该组件配置,支持日志功能,系统的日志分析功能可以直接通过Logger组件配置,支持Registry组件,可以为你的系统配置各种平台的注册接口,方便通过第三方账户注册软件,如果你需要构建新的项目就可以下载这款Kratos服务框架!
Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关框架及工具。
APIs:协议通信以 HTTP/gRPC 为基础,通过 Protobuf 进行定义;
Errors:通过 Protobuf 的 Enum 作为错误码定义,以及工具生成判定接口;
Metadata:在协议通信 HTTP/gRPC 中,通过 Middleware 规范化服务元信息传递;
Config:支持多数据源方式,进行配置合并铺平,通过 Atomic 方式支持动态配置;
Logger:标准日志接口,可方便集成三方 log 库,并可通过 fluentd 收集日志;
Metrics:统一指标接口,可以实现各种指标系统,默认集成 Prometheus;
Tracing:遵循 OpenTelemetry 规范定义,以实现微服务链路追踪;
Encoding:支持 Accept 和 Content-Type 进行自动选择内容编码;
Transport:通用的 HTTP/gRPC 传输层,实现统一的 Middleware 插件支持;
Registry:实现统一注册中心接口,可插件化对接各种注册中心;
简单:不过度设计,代码平实简单;
通用:通用业务开发所需要的基础库的功能;
高效:提高业务迭代的效率;
稳定:基础库可测试性高,覆盖率高,有线上实践安全可靠;
健壮:通过良好的基础库设计,减少错用;
高性能:性能高,但不特定为了性能做 hack 优化,引入 unsafe ;
扩展性:良好的接口设计,来扩展实现,或者通过新增基础库目录来扩展功能;
容错性:为失败设计,大量引入对 SRE 的理解,鲁棒性高;
工具链:包含大量工具链,比如 cache 代码生成,lint 工具等等;
依赖注入
Wire 是一个灵活的依赖注入工具,通过自动生成代码的方式在编译期完成依赖注入。
在各个组件之间的依赖关系中,通常鼓励显式初始化,而不是全局变量传递。
所以通过 Wire 进行初始化代码,可以很好地解决组件之间的耦合,以及提高代码维护性。
安装工具#
go get github.com/google/wire/cmd/wireCopy
工作原理#
Wire 具有两个基本概念:Provider 和 Injector。
Provider 是一个普通的 Go Func ,这个方法也可以接收其它 Provider 的返回值,从而形成了依赖注入;
使用方式#
在 Kratos 中,主要分为 server、service、biz、data 服务模块,会通过 Wire 进行模块顺序的初始化;
在每个模块中,只需要一个 ProviderSet 提供者集合,就可以在 wire 中进行依赖注入;
并且我们在每个组件提供入口即可,不需要其它依赖,例如:
然后通过 wire.go 中定义所有 ProviderSet 可以完成依赖注入配置。
初始化组件#
通过 wire 初始化组件,需要定义对应的 wire.go,以及 kratos application 用于启动管理。
在项目的 main 目录中,运行 go generate 进行生成编译期依赖注入代码:
go generate ./...
Errors
APIs 错误码可以统一通过 proto 定义业务原因,然后通过 protoc-gen-go-errors 生成判定代码。
在errors包中,错误信息通过 proto 定义,并且实现对应的 Error 接口,并且可以直接通过 middleware 转换成 gRPC 错误码。
安装工具#
go get github.com/go-kratos/kratos/cmd/protoc-gen-go-errors@latestCopy
错误定义#
api/helloworld/errors/helloworld.proto
错误生成#
通过 proto 生成对应的代码:
kratos proto client api/helloworld/errors/helloworld.protoCopy
生成的源码,可以直接通过 errors.IsMissingName(err) 进行对应的错误判定:
使用方式#
Config
使用方式#
配置源可以指定多个,并且 config 会进行合并成 map[string]interface{},然后通过 Scan 或者 Value 获取值内容;
Logging
接口实现#
为了方便业务自适配不同的 log 接入使用,Logger 只包含了最简单的 Print 接口。当业务需要在 Kratos 框架内部使用自定义的 logging middlerware 的时候,只需要简单实现 Print 方法即可
使用方式#
输出日志到stdout#
使用自带的 StdLogger 可以创建标准输出日志对象. 通过 NewHelper 构造日志模块,Helper 生成的日志模块可以提供不同等级的日志输出。
输出日志到fluentd#
引入 fluent sdk
在kratos中引入logging middleware#
在 http.ServerOption 中引入 logging.Server(), 则 Kratos 会在每次收到 HTTP 请求的时候打印详细请求信息
Embarcadero RAD Studio(多功能应用程序开发工具) 编程工具177.22 MB12
详情猿编程客户端 编程工具173.32 MB4.16.0
详情猿编程 编程工具173.32 MB4.16.0
详情VSCodium(VScode二进制版本) 编程工具76.23 MBv1.57.1
详情aardio(桌面软件快速开发) 编程工具9.72 MBv35.69.2
详情一鹤快手(AAuto Studio) 编程工具9.72 MBv35.69.2
详情ILSpy(.Net反编译) 编程工具3.97 MBv8.0.0.7339 绿色
详情文本编辑器 Notepad++ 编程工具7.81 MBv8.1.3 官方中文版
详情核桃编程 编程工具272.43 MBv2.1.120.0 官方版
详情delphi2007完整 编程工具1198 MB附安装教程
详情SAPIEN PrimalScript2015 编程工具78.02 MB附带安装教程
详情Alchemy Catalyst可视化汉化工具 编程工具81.00 MBv13.1.240
详情Professional Tag Editor(通用标签编辑器) 编程工具25.6 MBv1.0.6.8
详情Coffeecup HTML Editor(html网页编辑器) 编程工具68.98 MBv15.4 特别版
详情JCreator Pro 编程工具9.65 MBv5.0.1 汉化
详情WebStorm 12中文 编程工具209.88 MB附带安装教程
详情MSWLogo(多功能项目开发与管理工具) 编程工具2.25 MBv6.5 免费版
详情JetBrains datagrip 2018.2.1中文-datagrip 2018.2.1 编程工具160.88 MB附注册码汉化包
详情易安卓5.0 编程工具202 MBv5.0 附破解补丁
详情keil uvision5 编程工具271.63 MB附带安装教程
详情CIMCO Edit V8中文 编程工具248 MB附安装教程
详情IntelliJ IDEA 2020.1(java集成开发环境) 编程工具643.0 MB附安装教程
详情redis desktop manager2020.1中文 编程工具32.52 MB附带安装教程
详情猿编程 编程工具173.32 MB4.16.0
详情信捷PLC编程工具软件 编程工具14.4 MBv3.5.2 官方版
详情源码编辑器 编程工具201.0 MBv3.4.3 官方版
详情Microsoft Visual C++ 编程工具226.00 MBv6.0 SP6 简体中文版
详情s7 200 smart编程软件 编程工具187 MBv2.2 官方中文版
详情TouchWin编辑工具(信捷触摸屏编程软件) 编程工具55.69 MBv2.D2c 官方版
详情易语言5.8完美 编程工具312 MB5.8.1 破解增强版
详情Scraino(少儿编程软件) 编程工具272.93 MBv0.3.0 官方版
详情vs2008中文 编程工具1495 MB附序列号
详情e盾网络验证源码 编程工具25.77 MBV45 官方版
详情codeblocks 编程工具95.21 MBv13.12 中文完整版(带GNW编译器
详情Android Studio(安卓开发环境) 编程工具983.0 MBv3.5.0.21 汉化版(附安装教程)
详情源码编辑器pc版 编程工具201.0 MBv3.4.3 官方版
详情CH341A编程器 编程工具1.06 MB1.30 绿色中文版
详情layuiAdmin pro(layui后台管理模板系统) 编程工具0.57 MBv1.1.0 单页版
详情海龟编辑器 编程工具71.5 MBv0.8.4 中文版
详情Ardublock中文版(Arduino图形化编程软件) 编程工具2.65 MB附带安装教程
详情文本编辑器 Notepad++ 编程工具7.81 MBv8.1.3 官方中文版
详情富途牛牛 编程工具160.59 MBv11.8.9068 官方版
详情微信开发者工具 编程工具129.37 MBv1.05.2105170 官方版
详情UEStudio v18.0.0.18 简体中文绿色 编程工具19.00 MB
详情十六进制编辑器 WinHex 编程工具2.79 MBv20.2 SR-5
详情代码编辑器 Sublime Text 编程工具54.74 MBv4.0.0.4126
详情RJ TextEd(代码编辑器) 编程工具49.46 MBv15.31
详情核桃编程 编程工具272.43 MBv2.1.120.0 官方版
详情影刀 编程工具306.37 MBv4.9.14
详情Kate(高级文本编辑器) 编程工具56.11 MBv21.12.1.1544
详情