• 广播模式

    广播模式

    示例: broadcast

    BroadcastXClient 的一个方法, 你可以将一个请求发送到这个服务的所有节点。
    如果所有的节点都正常返回,没有错误的话, Broadcast将返回其中的一个节点的返回结果。 如果有节点返回错误的话,Broadcast将返回这些错误信息中的一个。

    1. func main() {
    2. ……
    3. xclient := client.NewXClient("Arith", client.Failover, client.RoundRobin, d, client.DefaultOption)
    4. defer xclient.Close()
    5. args := &example.Args{
    6. A: 10,
    7. B: 20,
    8. }
    9. for {
    10. reply := &example.Reply{}
    11. err := xclient.Broadcast(context.Background(), "Mul", args, reply)
    12. if err != nil {
    13. log.Fatalf("failed to call: %v", err)
    14. }
    15. log.Printf("%d * %d = %d", args.A, args.B, reply.C)
    16. time.Sleep(1e9)
    17. }
    18. }