mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-03 22:45:13 +08:00
扩展获取node接口
This commit is contained in:
@@ -201,7 +201,7 @@ func GetRpcClient(nodeId int,serviceMethod string,clientList []*rpc.Client) (err
|
|||||||
serviceName := serviceMethod[:findIndex]
|
serviceName := serviceMethod[:findIndex]
|
||||||
|
|
||||||
//1.找到对应的rpcNodeid
|
//1.找到对应的rpcNodeid
|
||||||
return GetCluster().GetNodeIdByService(serviceName,clientList)
|
return GetCluster().GetNodeIdByService(serviceName,clientList,true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetRpcServer() *rpc.Server{
|
func GetRpcServer() *rpc.Server{
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ func (cls *Cluster) IsConfigService(serviceName string) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cls *Cluster) GetNodeIdByService(serviceName string,rpcClientList []*rpc.Client) (error,int) {
|
func (cls *Cluster) GetNodeIdByService(serviceName string,rpcClientList []*rpc.Client,bAll bool) (error,int) {
|
||||||
cls.locker.RLock()
|
cls.locker.RLock()
|
||||||
defer cls.locker.RUnlock()
|
defer cls.locker.RUnlock()
|
||||||
nodeIdList,ok := cls.mapServiceNode[serviceName]
|
nodeIdList,ok := cls.mapServiceNode[serviceName]
|
||||||
@@ -202,8 +202,7 @@ func (cls *Cluster) GetNodeIdByService(serviceName string,rpcClientList []*rpc.C
|
|||||||
if ok == true {
|
if ok == true {
|
||||||
for _,nodeId := range nodeIdList {
|
for _,nodeId := range nodeIdList {
|
||||||
pClient := GetCluster().GetRpcClient(nodeId)
|
pClient := GetCluster().GetRpcClient(nodeId)
|
||||||
if pClient==nil {
|
if pClient==nil || (bAll == false && pClient.IsConnected()==false) {
|
||||||
log.Error("Cannot connect node id %d",nodeId)
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
rpcClientList[count] = pClient
|
rpcClientList[count] = pClient
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -1,3 +1,5 @@
|
|||||||
module github.com/duanhf2012/origin
|
module github.com/duanhf2012/origin
|
||||||
|
|
||||||
go 1.15
|
go 1.15
|
||||||
|
|
||||||
|
require gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22
|
||||||
|
|||||||
@@ -11,7 +11,10 @@ func Init(chanCloseSig chan bool) {
|
|||||||
closeSig=chanCloseSig
|
closeSig=chanCloseSig
|
||||||
|
|
||||||
for _,s := range mapServiceName {
|
for _,s := range mapServiceName {
|
||||||
s.OnInit()
|
err := s.OnInit()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
type Student struct {
|
type Student struct {
|
||||||
ID bson.ObjectId `bson:"_id"`
|
ID bson.ObjectId `bson:"_id"`
|
||||||
Name string `bson: "name"`
|
Name string `bson: "name"`
|
||||||
@@ -18,7 +20,7 @@ type Student struct {
|
|||||||
|
|
||||||
func Test_Example(t *testing.T) {
|
func Test_Example(t *testing.T) {
|
||||||
module:=MongoModule{}
|
module:=MongoModule{}
|
||||||
module.Init("127.0.0.1",100, 5*time.Second,5*time.Second)
|
module.Init("mongodb://admin:123456@127.0.0.1:27017",100, 5*time.Second,5*time.Second)
|
||||||
|
|
||||||
// take session
|
// take session
|
||||||
s := module.Take()
|
s := module.Take()
|
||||||
@@ -62,7 +64,7 @@ func Test_Example(t *testing.T) {
|
|||||||
fmt.Print(err)
|
fmt.Print(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
//序号自增
|
//7.序号自增
|
||||||
s.EnsureCounter("test2","t_student","5f252f09999c622d36198951")
|
s.EnsureCounter("test2","t_student","5f252f09999c622d36198951")
|
||||||
for i := 0; i < 3; i++ {
|
for i := 0; i < 3; i++ {
|
||||||
id, err := s.NextSeq("test2", "t_student", "5f252f09999c622d36198951")
|
id, err := s.NextSeq("test2", "t_student", "5f252f09999c622d36198951")
|
||||||
@@ -72,4 +74,9 @@ func Test_Example(t *testing.T) {
|
|||||||
}
|
}
|
||||||
fmt.Println(id)
|
fmt.Println(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//8.setoninsert使用
|
||||||
|
info,uErr := c.Upsert(bson.M{"_id":bson.ObjectIdHex("5f252f09999c622d36198951")},bson.M{
|
||||||
|
"$setOnInsert":bson.M{"Name":"setoninsert","Age":55}})
|
||||||
|
fmt.Println(info,uErr)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user