| | |
| | | package discovery |
| | | |
| | | import ( |
| | | "basic.com/pubsub/protomsg.git" |
| | | "basic.com/valib/gopherdiscovery.git" |
| | | "github.com/gogo/protobuf/proto" |
| | | "time" |
| | | "webserver/extend/logger" |
| | | ) |
| | | |
| | | const ( |
| | | Discovery_Server = "tcp://0.0.0.0:40008" |
| | | Discovery_UrlPubSub = "tcp://0.0.0.0:50008" |
| | | ) |
| | | |
| | | //启动discovery的server |
| | | var discoveryServer *gopherdiscovery.DiscoveryServer |
| | | var dbChangeChan chan *protomsg.EsPersonCacheChange |
| | | func StartServer() { |
| | | var clients []string |
| | | var err error |
| | | var ( |
| | | defaultOpts = gopherdiscovery.Options{ |
| | | SurveyTime: 3 * time.Second, |
| | | //RecvDeadline: 3 * time.Second, |
| | | PollTime: 5 * time.Second, |
| | | } |
| | | ) |
| | | |
| | | discoveryServer, err = gopherdiscovery.Server(Discovery_Server, Discovery_UrlPubSub, defaultOpts) |
| | | |
| | | logger.Debug("server: ", discoveryServer) |
| | | logger.Debug("err:",err) |
| | | logger.Debug("clients: ",clients) |
| | | |
| | | dbChangeChan = make(chan *protomsg.EsPersonCacheChange) |
| | | |
| | | for { |
| | | select { |
| | | case dbMsg := <-dbChangeChan: |
| | | publishMessage(dbMsg) |
| | | } |
| | | } |
| | | } |
| | | |
| | | //广播数据库改变的msg |
| | | func publishMessage(msg *protomsg.EsPersonCacheChange) { |
| | | sendBytes,err := proto.Marshal(msg) |
| | | if err ==nil{ |
| | | discoveryServer.PublishMsg(string(sendBytes)) |
| | | } |
| | | } |
| | | |
| | | func AddDbMessage(msg *protomsg.EsPersonCacheChange) { |
| | | logger.Debug("MSG EsPersonCacheChange In") |
| | | dbChangeChan<-msg |
| | | } |
| | | //import ( |
| | | // "basic.com/pubsub/protomsg.git" |
| | | // "basic.com/valib/gopherdiscovery.git" |
| | | // "github.com/gogo/protobuf/proto" |
| | | // "time" |
| | | // "webserver/extend/logger" |
| | | //) |
| | | // |
| | | //const ( |
| | | // Discovery_Server = "tcp://0.0.0.0:40008" |
| | | // Discovery_UrlPubSub = "tcp://0.0.0.0:50008" |
| | | //) |
| | | // |
| | | ////启动discovery的server |
| | | //var discoveryServer *gopherdiscovery.DiscoveryServer |
| | | //var dbChangeChan chan *protomsg.EsPersonCacheChange |
| | | //func StartServer() { |
| | | // var clients []string |
| | | // var err error |
| | | // var ( |
| | | // defaultOpts = gopherdiscovery.Options{ |
| | | // SurveyTime: 3 * time.Second, |
| | | // //RecvDeadline: 3 * time.Second, |
| | | // PollTime: 5 * time.Second, |
| | | // } |
| | | // ) |
| | | // |
| | | // discoveryServer, err = gopherdiscovery.Server(Discovery_Server, Discovery_UrlPubSub, defaultOpts) |
| | | // |
| | | // logger.Debug("server: ", discoveryServer) |
| | | // logger.Debug("err:",err) |
| | | // logger.Debug("clients: ",clients) |
| | | // |
| | | // dbChangeChan = make(chan *protomsg.EsPersonCacheChange) |
| | | // |
| | | // for { |
| | | // select { |
| | | // case dbMsg := <-dbChangeChan: |
| | | // publishMessage(dbMsg) |
| | | // } |
| | | // } |
| | | //} |
| | | // |
| | | ////广播数据库改变的msg |
| | | //func publishMessage(msg *protomsg.EsPersonCacheChange) { |
| | | // sendBytes,err := proto.Marshal(msg) |
| | | // if err ==nil{ |
| | | // discoveryServer.PublishMsg(string(sendBytes)) |
| | | // } |
| | | //} |
| | | // |
| | | //func AddDbMessage(msg *protomsg.EsPersonCacheChange) { |
| | | // logger.Debug("MSG EsPersonCacheChange In") |
| | | // dbChangeChan<-msg |
| | | //} |