Announcement

👇Official Account👇

Welcome to join the group & private message

Article first/tail QR code

Skip to content

Lesson 4.2: 服务通信

学习目标

  • 理解同步通信 vs 异步通信的取舍

1. 通信方式对比

方式延迟耦合度适用场景
REST对外 API
gRPC内部服务间
Kafka事件驱动、解耦
RabbitMQ任务队列

2. 选择建议

  • 请求-响应:gRPC(高性能)或 REST(兼容性)
  • 事件通知:Kafka(高吞吐)或 RabbitMQ(低延迟)
  • 流式处理:gRPC streaming
go
// Go 中 Kafka 生产者
import "github.com/segmentio/kafka-go"

writer := &kafka.Writer{
    Addr:     kafka.TCP("localhost:9092"),
    Topic:    "user-events",
    Balancer: &kafka.LeastBytes{},
}
writer.WriteMessages(ctx, kafka.Message{
    Key:   []byte(user.ID),
    Value: []byte(eventJSON),
})

上次更新于: