a
554325746@qq.com
2019-12-25 546d23f0ec50be30824d5a58ff5281ff6e21adbb
cluster.go
@@ -1,5 +1,5 @@
package androidSync
//package main
import (
   sdb "basic.com/Android/syncdb.git"
   "basic.com/valib/logger.git"
@@ -13,7 +13,7 @@
   syncClusterKeyPrefix = "bjbasic123"
)
const (
   defaultSqliteDBPath = "./testdb.db"
   defaultSqliteDBPath = "/sdcard/testdb.db"
   dBNameCluster      = "cluster"
   dBNameClusterNode  = "cluster_node"
@@ -26,9 +26,9 @@
var members *memberlist.Memberlist
var sqliteDBPath string = defaultSqliteDBPath
func init(){
   var logFile = "./logger/androidSync.log"
   var logSaveDays = 15   // 日志初始化
func InitCluster() bool {
   var logFile = "/sdcard/androidSync.log"
   var logSaveDays = 15
   logger.Config(logFile, logger.DebugLevel)
   logger.SetSaveDays(logSaveDays)
   err := sdb.InitDbConn(sqliteDBPath)
@@ -36,18 +36,13 @@
      logger.Error("sdb.InitDbConn ERROR: sqliteDBPath:", sqliteDBPath)
      os.Exit(-1)
   }
   return true
}
/*
   设置数据库路径
 */
func setDBPath(path string){
   sqliteDBPath = path
}
/*
   获取数据库路径
*/
func getDBPath() string {
   return sqliteDBPath
}
@@ -57,12 +52,6 @@
   sdb.CloseSearchNode(ml)
}
/*
   创建查询集群的临时节点,需要传入集群密码,6字节,数字或字母
   每个一秒调用一次GetSearchNodes,拿到搜索到的节点信息数据
   最后调用CloseSearchNode,关闭临时创建的搜索节点
   pwd = password must six bytes
*/
func CreateSearchNodeByPwd(pwd string) bool{
   pwdFull := syncClusterKeyPrefix + pwd
@@ -78,10 +67,7 @@
   return true
}
/*
   创建查询集群的临时节点,需要传入集群密码,16字节
   key = password
*/
func createSearchNode(key string) bool {
   var err error
   members, err = sdb.CreateSearchNode(key)
@@ -93,11 +79,7 @@
   return true
}
/*
   阻塞方式创建搜索集群的节点,会直接返回搜索到的节点
   map[string]NodeInfo
   nodes[NodeInfo.NodeID] = NodeInfo
 */
func createSearchNodeWhitClose(key string, delay int) []byte {
   nodes := sdb.CreateSearchNodeWhitClose(key, time.Duration(delay))
   strNodes, err := json.Marshal(nodes)
@@ -108,9 +90,7 @@
   return strNodes
}
/*
   关闭临时创建的节点
*/
func CloseSearchNode() bool {
   err := sdb.CloseSearchNode(members)
   if err != nil {
@@ -120,22 +100,6 @@
   return true
}
/*
   获取搜索到的节点信息
json vector
[
{Node1},
{Node2},
...
{Noden}
]
type NodeInfo struct {
   ClusterID   string `json:"clusterID"`
   NodeID      string `json:"nodeID"`
   NodeAddress string `json:"nodeAddress"`
   IsAlive     int    `json:"isAlive"`  //StatusNone:0, StatusAlive:1, StatusLeaving:2, StatusLeft:3, StatusFailed:4
}
*/
func GetSearchNodes() []byte {
   nodes := sdb.GetSearchNodes()
   strNodes, err := json.Marshal(nodes)
@@ -144,4 +108,4 @@
      return nil
   }
   return strNodes
}
}