liuxiaolong
2019-08-02 24e2d92df7cad99e1e514fa581fe59765dbc4a12
discovery/server.go
@@ -1,57 +1,57 @@
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
//}