返回

用 Kitex 开始你的微服务之旅

见解分享

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 的更深入信息,请参考其官方文档。