2021-01-23 08:18:35 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
2021-01-23 13:58:32 +00:00
|
|
|
"fmt"
|
2021-01-23 08:18:35 +00:00
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
|
"google.golang.org/grpc"
|
|
|
|
|
"myschools.me/suguo/consul-demo/consul"
|
|
|
|
|
pb "myschools.me/suguo/consul-demo/proto"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func main() {
|
2021-01-24 01:23:11 +00:00
|
|
|
v := []byte("asdfsdfdsf")
|
|
|
|
|
consul.KVPut("hello", &v, 0)
|
|
|
|
|
vv, _ := consul.KVGet("hello", 0)
|
|
|
|
|
fmt.Println(string(*vv))
|
|
|
|
|
|
2021-01-23 14:54:55 +00:00
|
|
|
for {
|
|
|
|
|
time.Sleep(10 * time.Millisecond)
|
2021-01-23 13:58:32 +00:00
|
|
|
|
2021-01-23 14:54:55 +00:00
|
|
|
node, err := consul.FindNode("demo")
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.WithFields(log.Fields{
|
|
|
|
|
"func": "main",
|
|
|
|
|
}).Errorf("%v", err)
|
|
|
|
|
fmt.Printf("%v\n", err)
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
if node == nil {
|
|
|
|
|
fmt.Println("node is empty")
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-23 15:03:10 +00:00
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
|
2021-01-23 14:54:55 +00:00
|
|
|
// conn, err := grpc.Dial("127.0.0.1:9001", grpc.WithBlock(), grpc.WithInsecure())
|
|
|
|
|
conn, err := grpc.DialContext(ctx, fmt.Sprintf("%s:%d", node.Address, node.Port), grpc.WithBlock(), grpc.WithInsecure(), grpc.WithBalancerName("round_robin"))
|
|
|
|
|
if err != nil {
|
2021-01-23 15:03:10 +00:00
|
|
|
fmt.Printf("%v\n", err)
|
2021-01-23 14:54:55 +00:00
|
|
|
cancel()
|
2021-01-23 15:10:10 +00:00
|
|
|
continue
|
2021-01-23 14:54:55 +00:00
|
|
|
}
|
2021-01-23 15:03:10 +00:00
|
|
|
|
2021-01-23 14:54:55 +00:00
|
|
|
c := pb.NewHelloClient(conn)
|
2021-01-23 15:10:10 +00:00
|
|
|
resp, err := c.Say(ctx, &pb.SayRequest{Name: "jiale", Day: time.Now().Format("2006-01-02 15:04:05")})
|
2021-01-23 14:54:55 +00:00
|
|
|
if err != nil {
|
|
|
|
|
log.WithFields(log.Fields{
|
|
|
|
|
"func": "main",
|
|
|
|
|
}).Errorf("%v", err)
|
2021-01-23 15:10:10 +00:00
|
|
|
fmt.Printf("%v\n", err)
|
|
|
|
|
continue
|
2021-01-23 14:54:55 +00:00
|
|
|
}
|
2021-01-23 08:18:35 +00:00
|
|
|
log.WithFields(log.Fields{
|
|
|
|
|
"func": "main",
|
2021-01-23 14:54:55 +00:00
|
|
|
}).Infof("%s", resp.Reply)
|
2021-01-23 15:03:10 +00:00
|
|
|
conn.Close()
|
2021-01-23 08:18:35 +00:00
|
|
|
}
|
|
|
|
|
}
|