批里批里 (゜-゜)つ🍺 干杯~|

七つ一旋桜

园龄:4年2个月粉丝:6关注:3

Day14 Kratos (一) | 青训营笔记

这是我参与「第五届青训营」伴学笔记创作活动的第 14 天

安装

go install github.com/go-kratos/kratos/cmd/kratos/v2@latest

更新

kratos upgrade

Quick Start

新建项目

kratos new helloworld

添加服务

kratos new app/user --nomod

添加proto文件

kratos proto add api/helloworld/v1/demo.proto

生成proto代码

kratos proto client api/helloworld/v1/demo.proto

生成service代码

使用 -t 指定生成目录

kratos proto server api/helloworld/v1/demo.proto -t internal/service

api

与kitex、go-micro和go-zero等框架类似的是,kratos也是需要定义idl的 kratos的idl与传统的grpc开发一样使用protobuf,可以看作是对grpc包了一层 包括grpc-gateway等工具kratos内部也集成了,因此可以快速地将原有的工程迁移到ktatos工程 并且kratos还自研了一些proto插件方便开发者更方便地开发服务

使用如下命令可以更具定义的Idl生成接口
生成 proto 模板
kratos proto add api/helloworld/v1/greeter.proto
生成 client 源码
kratos proto client api/helloworld/v1/greeter.proto
生成 server 源码
kratos proto server api/helloworld/v1/greeter.proto -t internal/service

HTTP API 是通过 protoc-gen-go-http 插件进行生成 http.Handler,然后可以注册到 HTTP Server 中:

import "github.com/go-kratos/kratos/v2/transport/http"

greeter := &GreeterService{}
srv := http.NewServer(http.Address(":8000"))
srv.HandlePrefix("/", v1.NewGreeterHandler(greeter))

gRPC API 是通过 protoc-gen-go-grpc 插件进行生成 gRPC Register,然后可以注册到 GRPC Server 中;

import "github.com/go-kratos/kratos/v2/transport/grpc"

greeter := &GreeterService{}
srv := grpc.NewServer(grpc.Address(":9000"))
v1.RegisterGreeterServer(srv, greeter)

热拔插

kratos内部使用的http框架是gorilla/mux,但是这个框架已经停止维护了,如果不想使用kratos内部集成的一些组件,kratos可以支持这些组件的热拔插,可以很简单的替换掉这些组件 在tx7do/kratos-transport: kratos transport layer extension (github.com)这个库中,作者提供了很多自己写的kratos插件,包括可以把kratos内部的gorilla替换成heartzfasthttp等框架

配置源

  1. 支持多种配置源

    Kratos定义了标准化的Source和Watcher接口来适配各种配置源。

    框架内置了本地文件file环境变量env的实现。

    另外,在contrib/config下面,我们也提供了如下的配置中心的适配供使用:

    如果上述的配置加载方式无法涵盖您的环境,您也可以通过实现接口来适配您自己的配置加载方式。

  2. 支持多种配置格式

    配置组件复用了encoding中的反序列化逻辑作为配置解析使用。默认支持以下格式的解析:

    • json
    • proto
    • xml
    • yaml

本文作者:七つ一旋桜

本文链接:https://www.cnblogs.com/poifa/p/17716915.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   七つ一旋桜  阅读(51)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起