MST

星途 面试题库

面试题:Go中Goroutine与通道在微服务通信的中等应用

在一个简单的微服务架构中,假设服务A需要向服务B发送一些数据,使用Go语言的Goroutine和通道来实现这个数据传递功能,要求描述实现思路并给出核心代码示例。
45.3万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 创建一个通道用于在服务A和服务B之间传递数据。
  2. 在服务A的Goroutine中,将数据发送到通道。
  3. 在服务B的Goroutine中,从通道接收数据。

核心代码示例

package main

import (
    "fmt"
)

func main() {
    // 创建通道
    dataCh := make(chan string)

    // 模拟服务A
    go func() {
        data := "Hello, Service B!"
        dataCh <- data
    }()

    // 模拟服务B
    go func() {
        receivedData := <-dataCh
        fmt.Println("Service B received:", receivedData)
    }()

    // 防止主函数退出
    select {}
}