Skip to content

Instantly share code, notes, and snippets.

@lyuxuan
Last active October 20, 2024 15:41
Show Gist options
  • Save lyuxuan/515fa6da7e0924b030e29b8be56fd90a to your computer and use it in GitHub Desktop.
Save lyuxuan/515fa6da7e0924b030e29b8be56fd90a to your computer and use it in GitHub Desktop.

Revisions

  1. lyuxuan revised this gist Dec 22, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion main.go
    Original file line number Diff line number Diff line change
    @@ -41,7 +41,7 @@ const (

    func main() {
    /***** Set up the server serving channelz service. *****/
    lis, err := net.Listen("tcp", ":50051")
    lis, err := net.Listen("tcp", ":50050")
    if err != nil {
    log.Fatalf("failed to listen: %v", err)
    }
  2. lyuxuan revised this gist Oct 23, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion main.go
    Original file line number Diff line number Diff line change
    @@ -89,5 +89,5 @@ func main() {
    ch := make(chan os.Signal, 1)
    signal.Notify(ch, os.Interrupt)
    // Block until a signal is received.
    sig := <-ch
    <-ch
    }
  3. lyuxuan revised this gist Aug 29, 2018. No changes.
  4. lyuxuan revised this gist Aug 29, 2018. No changes.
  5. lyuxuan revised this gist Aug 29, 2018. 1 changed file with 0 additions and 2 deletions.
    2 changes: 0 additions & 2 deletions main.go
    Original file line number Diff line number Diff line change
    @@ -41,8 +41,6 @@ const (

    func main() {
    /***** Set up the server serving channelz service. *****/
    // TODO: delete TurnOn.
    channelz.TurnOn()
    lis, err := net.Listen("tcp", ":50051")
    if err != nil {
    log.Fatalf("failed to listen: %v", err)
  6. lyuxuan revised this gist Aug 29, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion main.go
    Original file line number Diff line number Diff line change
    @@ -85,7 +85,7 @@ func main() {
    }
    }

    // Wait for CTRL+C to exit.
    /***** Wait for CTRL+C to exit *****/
    // Unless you exit the program with CTRL+C, channelz data will be available for querying.
    // Users can take time to examine and learn about the info provided by channelz.
    ch := make(chan os.Signal, 1)
  7. lyuxuan revised this gist Aug 29, 2018. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions main.go
    Original file line number Diff line number Diff line change
    @@ -52,7 +52,7 @@ func main() {
    go s.Serve(lis)
    defer s.Stop()

    /*****Initialize manual resolver and Dial *****/
    /***** Initialize manual resolver and Dial *****/
    r, rcleanup := manual.GenerateAndRegisterManualResolver()
    defer rcleanup()
    // Set up a connection to the server.
    @@ -72,7 +72,7 @@ func main() {
    name = os.Args[1]
    }

    // Make 100 SayHello RPCs.
    /***** Make 100 SayHello RPCs *****/
    for i := 0; i < 100; i++ {
    // Setting a 150ms timeout on the RPC.
    ctx, cancel := context.WithTimeout(context.Background(), 150*time.Millisecond)
  8. lyuxuan revised this gist Aug 29, 2018. 1 changed file with 12 additions and 6 deletions.
    18 changes: 12 additions & 6 deletions main.go
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    /*
    *
    * Copyright 2015 gRPC authors.
    * Copyright 2018 gRPC authors.
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    @@ -36,22 +36,23 @@ import (
    )

    const (
    address = "localhost:50052"
    defaultName = "world"
    )

    func main() {
    /***** Set up the server serving channelz service. *****/
    // TODO: delete TurnOn.
    channelz.TurnOn()
    lis, err := net.Listen("tcp", ":50051")
    if err != nil {
    log.Fatalf("failed to listen: %v", err)
    }

    s := grpc.NewServer()
    service.RegisterChannelzServiceToServer(s)
    go s.Serve(lis)
    defer s.Stop()

    /*****Initialize manual resolver and Dial *****/
    r, rcleanup := manual.GenerateAndRegisterManualResolver()
    defer rcleanup()
    // Set up a connection to the server.
    @@ -60,16 +61,20 @@ func main() {
    log.Fatalf("did not connect: %v", err)
    }
    defer conn.Close()
    // Manually provide resolved addresses for the target.
    r.NewAddress([]resolver.Address{{Addr: ":10001"}, {Addr: ":10002"}, {Addr: ":10003"}})

    c := pb.NewGreeterClient(conn)

    // Contact the server and print out its response.
    name := defaultName
    if len(os.Args) > 1 {
    name = os.Args[1]
    }


    // Make 100 SayHello RPCs.
    for i := 0; i < 100; i++ {
    // Setting a 150ms timeout on the RPC.
    ctx, cancel := context.WithTimeout(context.Background(), 150*time.Millisecond)
    defer cancel()
    r, err := c.SayHello(ctx, &pb.HelloRequest{Name: name})
    @@ -80,10 +85,11 @@ func main() {
    }
    }

    // Wait for CTRL+C to exit.
    // Unless you exit the program with CTRL+C, channelz data will be available for querying.
    // Users can take time to examine and learn about the info provided by channelz.
    ch := make(chan os.Signal, 1)
    signal.Notify(ch, os.Interrupt)

    // Block until a signal is received.
    sig := <-ch
    fmt.Println("Got signal:", sig)
    }
  9. lyuxuan created this gist Aug 29, 2018.
    89 changes: 89 additions & 0 deletions main.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,89 @@
    /*
    *
    * Copyright 2015 gRPC authors.
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
    *
    * http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    *
    */

    package main

    import (
    "fmt"
    "log"
    "net"
    "os"
    "os/signal"
    "time"

    "golang.org/x/net/context"
    "google.golang.org/grpc"
    "google.golang.org/grpc/channelz/service"
    pb "google.golang.org/grpc/examples/helloworld/helloworld"
    "google.golang.org/grpc/internal/channelz"
    "google.golang.org/grpc/resolver"
    "google.golang.org/grpc/resolver/manual"
    )

    const (
    address = "localhost:50052"
    defaultName = "world"
    )

    func main() {
    channelz.TurnOn()
    lis, err := net.Listen("tcp", ":50051")
    if err != nil {
    log.Fatalf("failed to listen: %v", err)
    }

    s := grpc.NewServer()
    service.RegisterChannelzServiceToServer(s)
    go s.Serve(lis)
    defer s.Stop()

    r, rcleanup := manual.GenerateAndRegisterManualResolver()
    defer rcleanup()
    // Set up a connection to the server.
    conn, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin"))
    if err != nil {
    log.Fatalf("did not connect: %v", err)
    }
    defer conn.Close()
    r.NewAddress([]resolver.Address{{Addr: ":10001"}, {Addr: ":10002"}, {Addr: ":10003"}})
    c := pb.NewGreeterClient(conn)

    // Contact the server and print out its response.
    name := defaultName
    if len(os.Args) > 1 {
    name = os.Args[1]
    }

    for i := 0; i < 100; i++ {
    ctx, cancel := context.WithTimeout(context.Background(), 150*time.Millisecond)
    defer cancel()
    r, err := c.SayHello(ctx, &pb.HelloRequest{Name: name})
    if err != nil {
    log.Printf("could not greet: %v", err)
    } else {
    log.Printf("Greeting: %s", r.Message)
    }
    }

    ch := make(chan os.Signal, 1)
    signal.Notify(ch, os.Interrupt)

    // Block until a signal is received.
    sig := <-ch
    fmt.Println("Got signal:", sig)
    }