返回
用 Kitex 开始你的微服务之旅
见解分享
2023-11-10 22:52:27
Kitex 使用初体验
前言
Kitex 是一个功能强大的 Go 微服务框架,它提供了构建和部署分布式系统的完整工具集。它基于 gRPC,这是一种由 Google 开发的高性能 RPC 框架。
安装 Kitex
要安装 Kitex,请运行以下命令:
go get -u github.com/cloudwego/kitex
构建你的第一个微服务
让我们从一个简单的“Hello World”微服务开始。
首先,创建一个新的 Go 项目:
go mod init example.com/helloworld
然后,在项目目录中创建以下文件:
main.go
package main
import (
"context"
"fmt"
"github.com/cloudwego/kitex/pkg/klog"
"github.com/cloudwego/kitex/pkg/rpcinfo"
"github.com/cloudwego/kitex/server"
)
func main() {
addr := ":8888"
srv := server.NewServer(addr)
srv.RegisterService(new(HelloWorld))
go func() {
err := srv.Run()
if err != nil {
klog.Fatal(err)
}
}()
fmt.Printf("server start: %s\n", addr)
_ = <-make(chan struct{})
}
type HelloWorld struct{}
func (h *HelloWorld) SayHello(ctx context.Context, req *rpcinfo.Empty) (*rpcinfo.String, error) {
klog.Info("received request")
return &rpcinfo.String{Value: "Hello, Kitex!"}, nil
}
helloworld.pb.go
syntax = "proto3";
package helloworld;
service Greeter {
rpc SayHello(Empty) returns (String);
}
message Empty {
}
message String {
string value = 1;
}
运行你的微服务
要运行您的微服务,请运行以下命令:
go run main.go
您现在应该可以在 http://localhost:8888/ 上看到您的微服务运行。
部署你的微服务
可以使用 Docker 部署您的微服务。首先,创建一个 Dockerfile:
FROM golang:1.18-alpine
WORKDIR /app
COPY go.mod go.sum .
RUN go mod download
COPY . .
CMD ["go", "run", "main.go"]
然后,构建并运行 Docker 映像:
docker build -t helloworld .
docker run -p 8888:8888 helloworld
解决网络问题
如果您在构建 Docker 映像时遇到网络问题,您可以通过以下方式解决:
- 更换镜像源
- 使用科学上网
测试你的微服务
可以使用 gRPCurl 测试您的微服务:
grpcurl -d "{}" -plaintext localhost:8888 helloworld.Greeter.SayHello
您应该会看到类似于以下内容的输出:
{
"value": "Hello, Kitex!"
}
结论
本文为您提供了使用 Kitex 构建、部署和测试微服务的基础知识。有关 Kitex 的更深入信息,请参考其官方文档。