Sobes.tech
Senior

Van tapasztalata elosztott rendszerekkel?

sobes.tech MI

Válasz az MI-től

Igen, tapasztalatom van a Go-ban történő elosztott rendszerekben. Például részt vettem egy mikroszerviz architektúra fejlesztésében, ahol a szolgáltatások gRPC-n keresztül kommunikáltak, és elosztott üzenetsorokat (például Kafka) használtak aszinkron kommunikációhoz. Fontos szempont volt a hibátűrés és az adatok konzisztenciájának biztosítása, például Circuit Breaker és Saga minták alkalmazásával.

Egyszerű gRPC szolgáltatás példája Go-ban:

package main

import (
    "context"
    "log"
    "net"

    "google.golang.org/grpc"
    pb "example.com/myservice/proto"
)

type server struct {
    pb.UnimplementedMyServiceServer
}

func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {
    return &pb.HelloReply{Message: "Hello " + in.Name}, nil
}

func main() {
    lis, err := net.Listen("tcp", ":50051")
    if err != nil {
        log.Fatalf("failed to listen: %v", err)
    }
    s := grpc.NewServer()
    pb.RegisterMyServiceServer(s, &server{})
    if err := s.Serve(lis); err != nil {
        log.Fatalf("failed to serve: %v", err)
    }
}