分支

例程fork

Fork是一个XClient方法,你可以使用它给所有包含给该服务的服务器发送一个请求。

如果任意一个服务器返回一个没有错误的相应,Fork就会给XClient返回,如果所有的服务器返回错误,那么fork就会返回那些错误。

这类似于Failbackup模式。Failbackup使用最多两个请求,但是Fork使用更多的请求(与服务器的数量相同)。

func main() {
    ...

    xclient := client.NewXClient("Arith", client.Failover, client.RoundRobin, d, client.DefaultOption)
    defer xclient.Close()

    args := &example.Args{
        A: 10,
        B: 20,
    }

    for {
        reply := &example.Reply{}
        err := xclient.Fork(context.Background(), "Mul", args, reply)        
        if err != nil {
            log.Fatalf("failed to call: %v", err)
        }

        log.Printf("%d * %d = %d", args.A, args.B, reply.C)
        time.Sleep(1e9)
    }
}

results matching ""

    No results matching ""