github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/prepare/23_proto_actor/cluster/seed/main.go (about) 1 package main 2 3 import ( 4 "log" 5 6 console "github.com/AsynkronIT/goconsole" 7 "github.com/AsynkronIT/protoactor-go/actor" 8 "github.com/AsynkronIT/protoactor-go/cluster" 9 "github.com/AsynkronIT/protoactor-go/cluster/consul" 10 "github.com/AsynkronIT/protoactor-go/examples/cluster/shared" 11 "github.com/AsynkronIT/protoactor-go/remote" 12 ) 13 14 func main() { 15 // this node knows about Hello kind 16 remote.Register("Hello", actor.PropsFromProducer(func() actor.Actor { 17 return &shared.HelloActor{} 18 })) 19 20 cp, err := consul.New() 21 if err != nil { 22 log.Fatal(err) 23 } 24 cluster.Start("mycluster", "127.0.0.1:8080", cp) 25 26 hello := shared.GetHelloGrain("MyGrain") 27 28 res, err := hello.SayHello(&shared.HelloRequest{Name: "Roger"}) 29 if err != nil { 30 log.Fatal(err) 31 } 32 log.Printf("Message from grain: %v", res.Message) 33 console.ReadLine() 34 35 cluster.Shutdown(true) 36 }