<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] ## 服務失敗策略與查詢策略 ``` d := client.NewMultipleServersDiscovery([]*client.KVPair{{Key: addr1}, {Key: addr2}}) /** 第二參數 FailMode 失敗策略 Failover 選擇另一個服務器自動故障轉移 Failfast 立即返回錯 Failtry 再次使用當前客戶端 Failbackup 選擇另一個服務器如果第一個服務器不響應在指定的時間和使用快速響應。 第三參數 SelectMode 選擇策略 RandomSelect 隨機選擇 RoundRobin 輪循 WeightedRoundRobin 加權輪循 WeightedICMP 時間加權平 ConsistentHash 哈希 Closest 最近的服務器 */ xclient := client.NewXClient("Arith", client.Failtry, client.RandomSelect, d, client.DefaultOption) ``` ## 例子 ### hello world <details> <summary>server.go</summary> ``` package main import ( "context" "github.com/smallnest/rpcx/server" ) type Args struct { A int B int } type Reply struct { C int } type Arith int func (t *Arith) Mul(ctx context.Context, args *Args, reply *Reply) error { reply.C = args.A * args.B return nil } func main() { s := server.NewServer() //s.Register(new(Arith), "") //兩種注冊方式 與下同 err := s.RegisterName("Arith", new(Arith), "") if err != nil { panic(err) } err = s.Serve("tcp", ":8972") if err != nil { panic(err) } } ``` </details> <br/> <details> <summary>client.go</summary> ``` package main import ( "context" "github.com/smallnest/rpcx/client" "log" ) func main() { type Args struct { A int B int } type Reply struct { C int } addr1 := "127.0.0.1:8973" addr2 := "127.0.0.1:8972" // #2 d := client.NewMultipleServersDiscovery([]*client.KVPair{{Key: addr1}, {Key: addr2}}) /** 第二參數 FailMode 失敗策略 Failover 選擇另一個服務器自動故障轉移 Failfast 立即返回錯 Failtry 再次使用當前客戶端 Failbackup 選擇另一個服務器如果第一個服務器不響應在指定的時間和使用快速響應。 第三參數 SelectMode 選擇策略 RandomSelect 隨機選擇 RoundRobin 輪循 WeightedRoundRobin 加權輪循 WeightedICMP 時間加權平 ConsistentHash 哈希 Closest 最近的服務器 */ xclient := client.NewXClient("Arith", client.Failtry, client.RandomSelect, d, client.DefaultOption) defer xclient.Close() // #3 args := &Args{ A: 10, B: 20, } // #4 reply := &Reply{} // #5 err := xclient.Call(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) } ``` </details> <br/> ### 當使用mongodb 作為服務存儲時的服務發現 不要使用`client.NewMultipleServersDiscovery()`的方式進行初始化,而是直接初始化`discovery := &client.MultipleServersDiscovery{}` 并在服務管理中循壞的方式進行節哀in聽 ``` func NewClient(){ ... discovery := &client.MultipleServersDiscovery{} ... } func (x *XClient) Run() { for { oneServers, err := login_status.Service.GetIpAll("one") if err != nil { logs.Errorf("[tpc_client] one server 獲取失敗",err) } var pairs= make([]*client.KVPair,0,len(oneServers)) for _, addr := range oneServers { pairs = append(pairs, &client.KVPair{Key: addr}) } x.discovery.Update(pairs) time.Sleep(5*time.Second) } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看